我希望從一些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