2013-04-15 23 views
0

[SQL Server 2008中標準]最好的方法來調用存儲過程查詢

我有一個用來插入新的數據到一個表,預期該工作的存儲過程的所有結果。不過,我現在需要使用查詢結果作爲參數多次調用此存儲過程。

例如

select 
    name, age, foo, bar 
from 
    sometable 
where 
    wobble = 'true' 

exec insertProc name age foo bar 

我知道我可以使用遊標來達致這,但我一直讀取「遊標壞」 ......但我不知道任何其他方式做到這一點?

+0

你不能使用'select into'作爲替代嗎? –

+0

不,這個存儲過程不僅僅是一個插入(上面只是一個例子,而不是真正的東西) – BlueChippy

回答

1

一個解決方案是使用遊標。其他方法是在調用過程之前將結果集準備到臨時表中,然後將其提供給過程(必須通過將表值參數添加爲輸入參數來更改過程)。一些信息在msdn

+0

我不需要仍然通過我的TVP行循環嗎? – BlueChippy

+0

在程序中 - 不需要,您必須修改以便可以使用TVP的結果[將TVP傳遞給程序](http://www.techrepublic.com/blog/datacenter/passing-table-valued -parameters-in-sql-server-2008/168) – dferidarov

+0

我想我可以這樣做...不確定,但可能值得一試。 – BlueChippy