Страницы

Поиск по вопросам

четверг, 2 мая 2019 г.

команда USE Sercver в запросе

Господа, прошу объяснить не мыслимое
Есть простой запрос, который у меня работает, и в C# и в МС студии
//c# string slim_sqlquery = "SELECT * FROM sys.Tables"; //Ms SQL Server Management Studio SELECT * FROM sys.Tables
Но на некоторых серверах таблички не находятся, в студии делаю по другому
//Ms SQL Server Management Studio Use MyServerName GO SELECT * FROM sys.Tables
А как это же самое реализовать на c# ?
//p.s. string slim_sqlquery = "Use MyServerName GO SELECT * FROM sys.Tables"; SqlCommand cmd = new SqlCommand(slim_sqlquery, conn_my_servak); SqlDataReader reader = cmd.ExecuteReader();//вот тут лезут ошибки, что SQL запрос надо в 1 строку


Ответ

SqlClient не понимает GO так, как это делает SSMS.
Либо используйте three-part naming
SqlCommand cmd = new SqlCommand("SELECT * FROM MyServerName.sys.Tables", conn_my_servak); SqlDataReader reader = cmd.ExecuteReader();
Либо вынесите смену контекста в отдельную команду:
conn_my_servak.ChangeDatabase("MyServerName");
SqlCommand cmd = new SqlCommand("SELECT * FROM sys.Tables", conn_my_servak); SqlDataReader reader = cmd.ExecuteReader();

Комментариев нет:

Отправить комментарий