我試圖創建一個使用T-SQL將變量插入到表中的存儲過程。使用我所知道的方法,在創建存儲過程時聲明變量,但我相信可以將變量聲明爲exec語句的一部分,以使插入動態化。我搜索了谷歌搜索和谷歌搜索,並找不到任何支持這一點。T-SQL存儲過程,在exec中聲明變量
這裏是我的示例代碼,因爲它代表與靜態變量:
create procedure spInsert as
declare @insertValueOne varchar(5) = 'Test1'
declare @insertValueTwo varchar(5) = 'Test2'
declare @insertValueThree varchar(5) = 'Test3'
declare @insertValueFour varchar(5) = 'Test4'
begin
insert into testTable
(ValueOne, ValueTwo, ValueThree, ValueFour)
values
(@insertValueOne, @insertValueTwo, @insertValueThree, @insertValueFour)
end
exec spInsert
我試圖做到的,是一個情況我可以可以使用腳本執行這樣的例子:
exec spInsert('Test1', 'Test2', 'Test3', 'Test4')
而不是在過程中創建靜態變量。允許用戶執行存儲過程而不修改其內容。
這是否有意義? 有什麼建議嗎?
我想你只需要刪除括號。 –
exec spInsert後的圓括號?它會插入我的變量在它們被聲明的順序中嗎? thx – roastbeeef