dop*_*ner 2 sql sql-server stored-procedures
我有一个SQL存储过程'A',它验证给定帐户的某些银行帐户信息,并接受帐号作为参数'arg1'
我想对另一个表XXX的列X中存在的所有值执行该过程(Accounts表中存在的所有银行帐户)
我不确定这样的事情是否有效
exec A @arg1 = X from XXX
Run Code Online (Sandbox Code Playgroud)
提前致谢!
Ric*_*iwi 11
没有你想要运行它的批量EXEC.
选项1:手动生成和运行.复制结果,粘贴回SSMS并执行.
select 'exec A @arg1 = ' + quotename(X,'''') + ';'
from XXX
Run Code Online (Sandbox Code Playgroud)
选项2:生成批处理并使用动态SQL运行.
declare @sql nvarchar(max);
set @sql = '';
select @sql = @sql + 'exec A @arg1 = ' + quotename(X,'''') + ';'
from XXX;
exec (@sql);
Run Code Online (Sandbox Code Playgroud)
选项3:循环运行它
declare @x varchar(max);
select top(1) @x = X from xxx where X is not null order by X;
while @@rowcount > 0
begin
exec sp_executesql N'exec A @arg1=@x;', N'@x varchar(max)', @x=@x;
select top(1) @x = X from xxx where X > @x order by X;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11133 次 |
| 最近记录: |