我希望从一些C#代码中创建一个临时存储过程。虽然它是一个临时存储过程,但如果它已存在以确保连接保持打开状态,我希望将其删除,但当我尝试第二次创建连接时,我不会遇到问题。从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执行?
(我简化了实际的存储过程) – andrew
你试过删除'GO'吗? –
@JDHooper这不是有效的SQL。 “CREATE PROCEDURE必须是批处理中唯一的语句” – andrew