Я пытаюсь создать нечто похожее на SQL Server Management Studio.Несколько запросов на одно и то же соединение с использованием тех же переменных T-SQL
Я хочу, чтобы возможность запуска нескольких запросов на одной и той же связи, как один делает в той же вкладке в SSMS, однако из C# каждый SqlCommand
выполняется отдельно, даже с той же SqlConnection
, поэтому они не могут видеть друг друга DECLARE
«ю.ш.
Пример: При запуске двух запросов:
DECLARE @ted varchar(100) = 'Ted A';
SELECT @ted as [Query1];
и другие
SELECT @ted as [Query2];
Если вы запустите эти два, по порядку, отдельно на вкладке SSMS
, вы должны получить два правильных результата, по одному от каждого запроса.
Однако проблема у меня есть, если у меня есть один SqlConnection
, и я создаю два объекта SqlCommand
, тогда они не видят переменную @ted
, даже если они являются тем же самым соединением.
Как создать соединение с базой данных sql-сервера так, чтобы он вел себя как вкладка SSMS, так что каждый последующий запрос находится в той же области видимости, и поэтому я могу использовать @variables
во всех запросах?
Примечание: такое же поведение, как и в SSMS, также можно найти в утилите SQLCMD
.
Редактирование: я только что понял, что я спросил, а не как работает SSMS, это на самом деле невозможно. вы должны быть в состоянии получить доступ к #tables и т.д. из того же соединения, но не @variables
Если вы запустите 'ВЫБРАТЬ @ted, как [Query2];' Этот запрос без объявления '@ ted' вы получите сообщение об ошибке –
Почему вы хотите как это?? –
Мне нужна возможность запускать два запроса 'in order', но некоторое время. –