SQL之遊標和臨時表
阿新 • • 發佈:2019-01-31
今天使用了遊標來進行兩個表之間的資料比較,並用臨時表記錄。做個記錄以便使用。。
<p> DECLARE @id int, @name varchar(50), @sex varchar(50), @class varchar(50), @type varchar(50), @message varchar(80)</p><p>--定義遊標 DECLARE titles_cursor CURSOR FOR SELECT ta.* FROM tb1 ta, tb2 t WHERE ta.cname = t.cname --AND -- ta.au_id = @au_id -- Variable value from the outer cursor</p><p>--如果臨時表已存在,刪除 if object_id('tempdb..#TableInfo') is not null begin drop table #TableInfo end --建立臨時表 create table #TableInfo(tid int,tname varchar(50),tsex varchar(50),tclass varchar(50),ttype varchar(50)) --開啟遊標並賦值 OPEN titles_cursor FETCH NEXT FROM titles_cursor INTO @id,@name,@sex</p><p> IF @@FETCH_STATUS <> 0 PRINT '<<No Data>>' </p><p> </p><p> WHILE @@FETCH_STATUS = 0 BEGIN SELECT @message = '' + @name PRINT @message --向臨時表插入資料 insert into #TableInfo values(@id,@name,@sex,@class,@type)</p><p> -- PRINT @message FETCH NEXT FROM titles_cursor INTO @id,@name,@sex END --關閉遊標 CLOSE titles_cursor --釋放遊標 DEALLOCATE titles_cursor</p><p>select * from #TableInfo </p>