Как отправить несколько команд в SQL Server 2008 за один прием

Я хочу отправить несколько параметризованных команд обновления, вставки и удаления в базу данных сервера SQL в один прием. Я посмотрел на sqlbulkcopy, но, похоже, работает только с одним отображением / таблицей / оператором за раз. Я надеялся на что-то более гибкое. Мне не нужно получать какие-либо результаты ни от одного из запросов (например, от числа затронутых строк), но я хочу, чтобы сбои распространялись обратно на уровень приложения и чтобы транзакция могла быть откатана. Есть идеи?

Дополнительный вопрос: мне также было интересно, как nHibernate делает это, только потому, что он проверен и верен и, кажется, работает хорошо. Я попытался просмотреть исходный код nhibernate, но не сразу было понятно, как он делал пакетирование. Я могу вернуться к источнику, но надеялся, что кто-то знает, высокий уровень, как он обрабатывается и сможет объяснить мне.

2 ответа

Решение

Задавать CommandType в Textи разделите ваши команды точкой с запятой. В итоге получается одна гигантская команда, имена параметров которой вам могут понадобиться программно (чтобы избежать конфликтов).

Если я не ошибаюсь, SqlCommandBuilder поможет вам:). SqlCommandBuilder

Другие вопросы по тегам