111

 1> declare cur cursor for select "select count(1) from "+name from sysobjects where type='U'
2> go
1> declare @sql varchar(200)
2> open cur
3> fetch cur into @sql
4> while @@sqlstatus = 0
5>  begin
6>     exec(@sql)
7>     fetch cur into @sql
8> end
9> go
1> deallocate cursor cur
2> go

前面說了,你可以先把動態sql這部分結果插入臨時表。然後你想怎麼着怎麼着。


至於cursor至少15以前的版本,還是能避免避免吧,效率還是比較低的

 

 

利用動態sql語句,將結果插入到臨時表裏,省去了用遊標的過程。 遊標效率挺低的。

 

 

我想到一種笨辦法,首先,建立一個過程,

create proc proc8501 @tn varchar(20)   
as
exec("select * into tempdb..ddgc from "+@tn )

執行過程後,得到臨時表
再通過臨時表定義指針
declare cdd cursor for select * from tempdb..ddgc


再從指針中得到值
create proc proc8901 @tn varchar(20)   
as
exec("select * into tempdb..dddgc from "+@tn )


不過必須寫一段執行一次,嘿嘿謝謝了,版主的郵箱是[email protected] 八?
我的是[email protected]可以多交流哦,呵呵,不懂就問你了~~~當然,我會盡量自己搞定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章