SQL - 对表中的所有值执行存储过程

标签 sql sql-server stored-procedures

我有一个 SQL 存储过程 'A',它验证给定帐户的某些银行帐户信息,并接受帐号作为参数 'arg1'

我想对另一个表 XXXX 列 中存在的所有值执行该过程(账户表中存在的所有银行账户)

我不确定这样的事情是否可行

exec A @arg1 = X from XXX

提前致谢!

最佳答案

不,没有您想要运行它的批量 EXEC。

选项 1:手动生成和运行。复制结果,粘贴回 SSMS 并执行。

select 'exec A @arg1 = ' + quotename(X,'''') + ';'
from XXX

选项 2:生成批处理并使用动态 SQL 运行。

declare @sql nvarchar(max);
set @sql = '';
select @sql = @sql + 'exec A @arg1 = ' + quotename(X,'''') + ';'
from XXX;
exec (@sql);

选项 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;

关于SQL - 对表中的所有值执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13162397/

相关文章:

php - 如何组织考勤系统代码(动态表单使用$_POST而不是$_GET)?

mysql - 字段列表中未知的列名(案例)- MySQL

sql-server - 需要一个插入行并返回 ID 的存储过程

sql-server - Visual Studio 中的正则表达式查找和替换 - 搜索词之间有多个空格

javascript - 如何在存储过程中使用表值作为参数?

sql - 您好,我有一份关于 super 用户帐户的所有 DBA 的资料。

sql - 创建一个以整列作为输入和输出的函数

sql - T-SQL 不同计数查询...可以使用 EXISTS 或其他方式对其进行优化吗?

sql-server - 重置 SCOPE_IDENTITY()

mysql - MySQL SP 中的更新语句显示缺少结束错误