使用遊標循環刪除表

在工做中,我遇到這樣的一種事情,一個系統作完了,我想用原來的框架從新作另外的一個項目,這就涉及到刪除除系統管理外的基他表,個人系統管理前綴是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_Cursor

print 'Start'變量

--循環執行語句原理

while @@FETCH_STATUS=0

beginobject

--把下一條數據  取出來放到@name中

fetch next from test_Cursor into @name

--執行這條語句

EXECUTE( @name)

end

--關悼遊標

close test_Cursor

--釋放遊標

DEALLOCATE test_Cursor

print 'End'



 在T-SQL中,定義一個遊標能夠是很是簡單,也能夠相對複雜,取決於遊標的參數.而遊標的參數設置取決於你對遊標原理的瞭解程度. 遊標其實能夠理解成一個定義在特定數據集上的指針,咱們能夠控制這個指針遍歷數據集,或者僅僅是指向特定的行,因此遊標是定義在以Select開始的數據集上的

相關文章
相關標籤/搜索