Dapper - 存储过程 - 'GO' 附近的语法不正确
Dapper - Stored Procedure - Incorrect syntax near 'GO'
我在 myscript.sql
文件中有一个存储过程,如下所示:
CREATE PROCEDURE [dbo].[_GetUserID]
@EmailAddress NVARCHAR(254)
AS
DECLARE @UserID UNIQUEIDENTIFIER;
SELECT @UserID = [ID]
FROM [dbo].[User]
WHERE [EmailAddress] = @EmailAddress
PRINT @UserID
GO
我有一些 C# 代码依赖于 Dapper 运行 这个脚本。当我将它复制并粘贴到 Azure Data Studio 中时,我可以成功 运行 这个脚本。但是,当我尝试从代码 运行 此脚本时,出现错误:
Incorrect syntax near 'GO'
我的 C# 代码如下所示:
try
{
var script = File.ReadAllText("<path to myScript.sql is here>");
using (var connection = new SqlConnection(dbConnectionString))
{
var command = connection.CreateCommand();
command.CommandText = script;
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
}
Console.WriteLine("Success.");
}
catch (Exception ex)
{
Console.WriteLine($"Failed. Reason: '{ex.Message}')");
}
我不明白为什么我可以从 Azure Data Studio 运行 myScript.sql
,但是,它在我的 C# 代码中不起作用。我也在使用相同的方法创建表并且它工作正常。我不确定我错过了什么。
GO
不是 有效的 T-SQL 关键字 - 它是 分隔符 [=] 26=] Server Management Studio,显然还有 Azure Data Studio。
要解决此问题,只需从 .sql
脚本文件中删除 GO
行,然后 运行 不删除它 - 应该没问题。
换句话说:在你的存储过程中只有一个 PRINT
语句没有多大意义 - 你真的不想 SELECT @UserId
来发送数据吗返回来电者??
我在 myscript.sql
文件中有一个存储过程,如下所示:
CREATE PROCEDURE [dbo].[_GetUserID]
@EmailAddress NVARCHAR(254)
AS
DECLARE @UserID UNIQUEIDENTIFIER;
SELECT @UserID = [ID]
FROM [dbo].[User]
WHERE [EmailAddress] = @EmailAddress
PRINT @UserID
GO
我有一些 C# 代码依赖于 Dapper 运行 这个脚本。当我将它复制并粘贴到 Azure Data Studio 中时,我可以成功 运行 这个脚本。但是,当我尝试从代码 运行 此脚本时,出现错误:
Incorrect syntax near 'GO'
我的 C# 代码如下所示:
try
{
var script = File.ReadAllText("<path to myScript.sql is here>");
using (var connection = new SqlConnection(dbConnectionString))
{
var command = connection.CreateCommand();
command.CommandText = script;
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
}
Console.WriteLine("Success.");
}
catch (Exception ex)
{
Console.WriteLine($"Failed. Reason: '{ex.Message}')");
}
我不明白为什么我可以从 Azure Data Studio 运行 myScript.sql
,但是,它在我的 C# 代码中不起作用。我也在使用相同的方法创建表并且它工作正常。我不确定我错过了什么。
GO
不是 有效的 T-SQL 关键字 - 它是 分隔符 [=] 26=] Server Management Studio,显然还有 Azure Data Studio。
要解决此问题,只需从 .sql
脚本文件中删除 GO
行,然后 运行 不删除它 - 应该没问题。
换句话说:在你的存储过程中只有一个 PRINT
语句没有多大意义 - 你真的不想 SELECT @UserId
来发送数据吗返回来电者??