我有一个带有GO
批处理分隔符的 SQL 脚本,我试图从 C# 代码执行。当我使用Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery
时,效果很好。但是,它在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteReader
or上爆炸了Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteWithResults
。
System.AggregateException: One or more errors occurred. --->
Microsoft.SqlServer.Management.Common.ExecutionFailureException: An exception occurred while executing a Transact-SQL statement or batch. --->
System.Data.SqlClient.SqlException: Incorrect syntax near 'GO'.
这是一个非常简单的脚本,如下所示:
SELECT
DB_NAME()
AS
'Database Name';
GO
EXEC [schema].[MyStoredProcedure];
GO
SELECT
[Column]
AS
'Friendly Column Name'
FROM
[schema].[Table];
GO
我已经尝试过script.Replace("\n", "\r\n")
,我得到了相同的结果。有谁知道我如何执行这样的脚本并取回结果?