SQLServerは結果集のデータを遍歴します。

947 ワード

Selcet文は結果セットを取得しています。結果セットを巡回するなら、各行によっていくつかの添削や評価などの操作を行います。
    次の例は一つのテーブルを巡回してSQLをつなぎ合わせてSelcet*from‘表名’に相当する効果を実現します。
declare @tabelName varchar(1000)
declare @list varchar(1000)
declare @name varchar(1000)
Set @tabelName = 'SYS_Programme_Fuction' --      
Set @list = '' --      
--     
DECLARE C_Employees CURSOR FAST_FORWARD FOR
   --         (          )
   select b.name from sysobjects a,syscolumns b where a.id=b.id and a.name = @tabelName 
OPEN C_Employees;

--       ,             name,       ,       
FETCH NEXT FROM C_Employees INTO @name; 

WHILE @@FETCH_STATUS=0
BEGIN
    --      (      )
    Set @list = @list + ',' + @name
    --       
    FETCH NEXT FROM C_Employees INTO @name;
END

--     
CLOSE C_Employees;

--     
DEALLOCATE C_Employees;

declare @sql nvarchar(1000)  
set @sql='select '+right(@list,len(@list)-1)+' from ' + @tabelName  
exec (@sql)