SQL 中刪除某數據庫所有trigger及sp
?
編寫人: CC 阿爸
?
2014-6-14
?
在日常 SQL 數據庫的操作中,如何快速的刪除所有 trigger 及 sp 呢
以下有三種方式可快速處理。
?
?
-- 第一種
-- 事務的處理方法
Begin Transaction
Begin try
declare @SQL varchar ( max )
set @SQL = ''
select @SQL = @SQL + name + ',' from sysobjects where xtype = 'TR' and name <> 'DropDatabase'
If ISNULL ( @SQL , '' )!= ''
Begin
set @SQL = 'Drop Trigger ' +LEFT( @SQL , len ( @SQL )- 1 )
select ? @SQL as aa
--exec(@SQL)
end
commit Transaction
End Try
Begin Catch
rollback tran
End Catch
?
?
-- 第二種方法
-- 采用光標的方式
?
--DECLARE cursorname cursor for select 'drop PROCEDURE? '+name from sys.objects where name like 'xx%' and xtype = 'P' -- 刪除對應的存儲過程
DECLARE cursorname cursor for select 'drop Trigger' + name from sys . objects where name like '%' and type = 'TR' -- 刪除對應的觸發器
open cursorname
declare @curname sysname
fetch next from cursorname into @curname
while ( @@fetch_status = 0 )
? begin
? --exec(@curname)
? select @curname as aa
fetch next from cursorname into @curname
end
close cursorname
deallocate cursorname
?
-- 第三種方法
-- 簡易辦法,查詢出來后,再在數據庫中執行
select 'drop Trigger ' + name from sys . objects where name like '%' and type = 'TR'
select 'drop PROCEDURE ' + name from sys . objects where name like '%' and type = 'P'
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
