执行表中每条记录的语句

时间:2009-11-04 05:07:59

标签: tsql

我有一个临时表(或者说,一个返回值表的函数)。

我想为表中的每条记录执行一些语句。 这可以在不使用游标的情况下完成吗?

我并不反对游标,但希望采用更优雅的语法方式。

类似这种随机编写的语法:

for (select A,B from @temp) exec DoSomething A,B

我正在使用Sql Server 2005。

3 个答案:

答案 0 :(得分:1)

我不认为你想要的是那么容易。

我发现你可以创建一个带有参数A和B的标量函数,然后从函数中执行扩展存储过程。这可能会实现您想要做的事情,但似乎这可能会使代码更加复杂。

我认为为了可读性和可维护性,您应该坚持使用CURSOR。

答案 1 :(得分:0)

我会考虑更改存储过程,以便它可以对一组数据而不是一行输入。

答案 2 :(得分:0)

如果您需要CROSS/OUTER APPLY处理,RBAR会做您想做的事。

它很优雅,但取决于你需要做什么处理