Господа, прошу объяснить не мыслимое
Есть простой запрос, который у меня работает, и в 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();
Комментариев нет:
Отправить комментарий