Я задаю вопрос, связанный с Выполнение нескольких команд SQL в одном цикле , но не совсем так, потому что у меня эта проблема в гораздо большем масштабе:
У меня есть входной файл со многими различными командами SQL (ExecuteNonQuery), которые мне нужно обработать с помощью приложения .net.
Пример:
INSERT INTO USERS (name, password) VALUES (@name, @pw); @name="abc"; @pw="def";
DELETE FROM USERS WHERE name=@name; @name="ghi";
INSERT INTO USERS (name, password) VALUES (@name, @pw); @name="mno"; @pw="pqr";
У всех команд есть параметры, поэтому я хотел бы, чтобы механизм параметров предоставлял .net. Но мое приложение должно прочитать эти заявления и выполнить их в течение приемлемого промежутка времени. В одном файле может быть несколько тысяч операторов.
Моей первой мыслью было использование SQLCommand с параметрами, так как это действительно был бы способ сделать это правильно (параметры экранированы .net), но я не могу позволить себе ждать 50 мсек для завершения каждой команды (сетевое взаимодействие с БД сервер, ...). Мне нужен способ цепочки команд.
Моя вторая мысль состояла в том, чтобы выйти и вставить параметры самостоятельно, чтобы я мог объединить несколько команд в одну SQLCommand:
INSERT INTO USERS (name, password) VALUES ('abc', 'def'); DELETE FROM USERS WHERE name=@name; @name='ghi'; INSERT INTO USERS (name, password) VALUES ('mno', 'pqr');
Однако я чувствую себя неловко с этим решением, потому что я не люблю экранировать ввод самостоятельно, если для этого есть предопределенные функции.
Что бы вы сделали? Спасибо за ваши ответы, Крис