sql - 在 SELECT 语句中执行存储过程

标签 sql sql-server-2005 stored-procedures select

例如,我是一个 select 语句,它返回 1000 行。我需要为 select 语句返回的每一行执行一个特定的存储过程。

你知道我该怎么做吗?

最佳答案

在您的选择中构造 EXECUTE 语句,如下所示:

SELECT 'EXEC sp_whatever ' + parameter stuff
FROM   your_table

然后运行结果!或者,将您的结果粘贴到电子表格包中,并使用字符串连接来构造 EXEC 语句 - 只需创建一个公式并将其粘贴到 1,000 行中。我个人更喜欢第一种方法。

为了澄清“参数的东西”,以一个存储过程为例,它需要两个 int要从列中获取的参数 your_table .然后你会有这样的东西:
SELECT 'EXEC sp_whatever ' + CAST(field1 AS varchar) + ', ' + CAST(field2 AS varchar)
FROM    your_table

这里不需要小心字符串字段 - 您冒着无意中将自己暴露于自己的 SQL 注入(inject)攻击的风险,就像任何 SQL 字符串连接一样。

我正在阅读您的“例如”作为“这是一次性任务”。如果这是一项需要自动化的任务,那么其他答案之一可能是正确的方法。

关于sql - 在 SELECT 语句中执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/715579/

相关文章:

postgresql - 如何修复此 PostgreSQL 9.1 存储过程?

sql-server - T-SQL 按分隔符分割

mysql - 找出此存储过程中的语法错误

sql将字符串拆分为一行

sql - 将表达式转换为数据类型 smallint 时出现算术溢出错误

sql - 如何在 Oracle 的过程中创建表?

sql - 创建表后立即使用表 : object does not exist

sql - 如何删除 SQL Server 2005 中的列?

java - 如何在SQL数据库中存储Html文件目录?

sql - 检索每个客户的最新记录