我正在使用一个变量来存储一个计数,并试图多次触发一个存储过程,每次迭代该数字。但是,我遇到了需要使用的语法方面的问题。这是我到目前为止:在存储过程变量中使用变量
declare @count INT
declare @total INT
declare @p1 nvarchar(255)
set @count = 1
set @total = 50
if @count <= @total
begin
set @p1=NULL
exec USP_DATAFORM_ADDNEW_b9c5ae3e_1e40_4e33_9682_18fb0bb40ff2 @[email protected] output,@ROLENAME='Load Test Role ' + @count,@DESCRIPTION=N'Role used for automated load test.',@COPYUSERS=0,@CHANGEAGENTID='023C133B-D753-41E9-BCC6-1E33A4ACD600',@SYSTEMROLEID=N'3a33d7a7-c3b3-4a34-a4d7-99ef1af78fb8'
select @p1
set @count = @count + 1
end
问题是,@ROLENAME='Load Test Role ' + @count
部分。什么是正确的语法使用?我应该在这里使用动态SQL并在exec_sql语句中定义整个事物吗?
仅供参考,我在SQL Server 2008 R2中。我得到的错误是Incorrect syntax near '+'
。
执行此操作时出现错误? –
为什么不使用'INT'作为计数变量? – William
'+'附近的语法不正确,与intellisense显示的相同。我会在这个问题上加上这一点。威廉 - 没有任何理由,除了我是一个白痴。 –