ExecuteNonQuery с параметрами - PullRequest
       2

ExecuteNonQuery с параметрами

0 голосов
/ 03 августа 2010

Мне нужно обработать файл, который содержит большое количество SQL-операторов.Проблема в том, что оператор sql содержит параметры.

Например, файл выглядит следующим образом

declare @var1 as nvarchar;
set @var1 = 'value';
insert into table (field1, field2, field3) 
  values ('value1', 'value2', @var1);

повторяется со следующим набором из трех строк.

Я надеялся, чтоЯ мог бы просто разобрать файл на три строчных блока и запустить их с помощью ExecuteNonQuery, однако проблема в том, что оператор sql содержит параметр.

Примечание. В моем примере @ var1 - это значение в скрипте, в котором он собирает переменную сервера.

Ответы [ 2 ]

0 голосов
/ 03 августа 2010

Обычно, когда вы запускаете существующий сценарий SQL, вы разделяете на GO и выполняете эти большие куски.Я не пытался сделать это с помощью операторов DECLARE, пытались ли вы выполнить скрипт как есть, то есть кусок, который вы опубликовали?

0 голосов
/ 03 августа 2010

Для меня звучит как файл SQL Script.

Разве вы не можете просто использовать ISQL или SQLCmd?

[Приложение]

Извините, я предполагал серверную часть MSSQL, поскольку вы ссылались на ExecuteNonQuery.

Если эти утверждения непротиворечивы, вы можете вставить значение.

* read and ignore first line. 
* read 2nd line and strip out value between quotes.
* read 3rd line, replace the @x string with the value from line 2.
* execute modified 3rd line.
* repeat

если они различаются по типу данных, вам нужно будет использовать объявленный тип для чтения и вставки значения (то есть не используйте кавычки для числовых значений).

В корне это действительно плохой проект и / или организационная проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...