【发布时间】:2016-01-13 17:04:31
【问题描述】:
我正在尝试创建一个使用 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 后面的括号?它会按照声明它们的顺序插入我的变量吗?谢谢
标签: sql sql-server tsql stored-procedures