在命令文本中设置 ANSI_NULLS 会出现错误

sha*_*shi 2 c# sql sql-server ado.net sql-server-2005

在运行一些查询之前,我必须设置 ANSI_NULLS 和其他一些数据库选项。所以在我的代码中

const string query_prefix = "SET ANSI_NULLS ON \n GO \n SET ANSI_PADDING ON \n GO \n SET ANSI_WARNINGS ON \n GO \n SET CONCAT_NULL_YIELDS_NULL ON \n GO \n SET QUOTED_IDENTIFIER ON \n GO \n SET NUMERIC_ROUNDABORT OFF \n GO \n ";
Run Code Online (Sandbox Code Playgroud)

我用它作为

SqlCommand cmd = new SqlCommand(query_prefix + "SELECT UserID,FirstName,MiddleName,LastName FROM mydb.dbo.UserInfo where UserID=10277",con);
Run Code Online (Sandbox Code Playgroud)

我在上面添加了“\n”,因为 SET ANSI_NULLS ON GO SET ANSI_PADDING ON GO 给出了错误“GO 附近的语法不正确”。在管理工作室中,如果 GO 在换行符中,那么我不会收到不正确的语法错误,否则我会收到。所以我添加了“\n”,但它仍然抛出错误。

那么如何从代码中设置这些数据库选项呢?我无法使用程序。

Joe*_*lli 5

GO是SSMS中的批处理分隔符,它不是SQL命令,不能包含在这样的查询中。