在SELECT语句中执行存储过程

Dav*_*ici 4 sql select stored-procedures sql-server-2005

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

你有什么想法我怎么能这样做?

Dav*_*d M 12

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

SELECT 'EXEC sp_whatever ' + parameter stuff
FROM   your_table
Run Code Online (Sandbox Code Playgroud)

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

为了阐明"参数内容",请以存储过程为例,该过程采用int您想要从列中获取的两个参数your_table.你会有这样的事情:

SELECT 'EXEC sp_whatever ' + CAST(field1 AS varchar) + ', ' + CAST(field2 AS varchar)
FROM    your_table
Run Code Online (Sandbox Code Playgroud)

不是需要小心这里的字符串字段 - 您运行的不慎露出自己到自己的SQL注入攻击,与任何SQL字符串连接的风险.

我正在阅读你的"实例",因为"这是一次性的任务".如果这是一项需要自动化的任务,那么其他答案之一可能是正确的方法.