我希望在一些 C# 代码中创建一个临时存储过程。虽然它是一个临时存储过程,但如果它已经存在,我希望将其删除,以确保连接是否保持打开状态,当我第二次尝试创建它时,我不会遇到问题。
为此,我有以下几行 SQL:
IF OBJECT_ID('tempdb..#usp_GetSomething') IS NOT NULL
BEGIN
DROP PROC #usp_GetSomething
END
GO
CREATE PROCEDURE #usp_GetSomething
@Table VARCHAR(100)
AS
BEGIN
SELECT @Table
END
这是有效的 SQL 并在 Management Studio 中执行。 但是,当我使用以下 C# 执行它时:
var cmd = new SqlCommand(theSQL, sqlConnection) {CommandType = CommandType.Text};
cmd.ExecuteNonQuery();
我收到以下错误:
“GO”附近的语法不正确。必须声明标量变量“@Table”。
我做错了什么?如何让 SQL 执行?
最佳答案
您将需要其中的 DMO/SMO 命名空间来执行此操作。
简单的 SqlCommand 无济于事。
https://msdn.microsoft.com/en-us/library/ms162169(v=sql.105).aspx
关于c# - 从 C# 删除和创建存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35464853/