在工做中,我遇到這樣的一種事情,一個系統作完了,我想用原來的框架從新作另外的一個項目,這就涉及到刪除除系統管理外的基他表,個人系統管理前綴是T_Sys,我就把查出要刪除的表拼接成刪除表字符串,而後用遊標去一條條執行這些語句。框架
--定義遊標fetch
declare test_Cursor CURSOR for指針
select 'drop table '+ [name]+' ' as name from [sysobjects] where [type] = 'u' and name not like 'T_Sys%' order by [name]ci
--定義一個臨時變量字符串
declare @name varchar(80)table
--打開遊標test
open test_Cursorprint 'Start'變量
--循環執行語句原理
while @@FETCH_STATUS=0beginobject
--把下一條數據 取出來放到@name中
fetch next from test_Cursor into @name
--執行這條語句
EXECUTE( @name)end
--關悼遊標
close test_Cursor
--釋放遊標
DEALLOCATE test_Cursorprint 'End'
在T-SQL中,定義一個遊標能夠是很是簡單,也能夠相對複雜,取決於遊標的參數.而遊標的參數設置取決於你對遊標原理的瞭解程度. 遊標其實能夠理解成一個定義在特定數據集上的指針,咱們能夠控制這個指針遍歷數據集,或者僅僅是指向特定的行,因此遊標是定義在以Select開始的數據集上的