0
我想創建一個將更新表的存儲過程。該過程將連接兩個表,我想使用變量傳遞表名(@tablename
)。產生在SQL Server存儲過程中使用參數傳遞表名
此錯誤:
必須聲明表變量 「@tablename」。
我的代碼:
Create Procedure dbo.SpUpdate (@TableName varchar(50))
as
begin
set @tablename='Customer'
Update a
Set AgentNumber = '5',
From dbo.CustomerList a
join @tablename b on a.customerid = b.customerid
end
退房動態SQL –
更新問題,包括你是什麼數據庫。很確定你會被迫在這裏使用動態sql ...雖然我建議你問你爲什麼這樣做,如果有更好的方法來實現你想要的東西。 – Twelfth
除了下面的修復程序,您還有其他一些問題。在更新的第一行後面有逗號,但您只更新單個列。如果你有一個區分大小寫的排序規則,這將失敗,因爲TableName <> tablename –