SQL 中刪除某數(shù)據(jù)庫所有trigger及sp
?
編寫人: CC 阿爸
?
2014-6-14
?
在日常 SQL 數(shù)據(jù)庫的操作中,如何快速的刪除所有 trigger 及 sp 呢
以下有三種方式可快速處理。
?
?
-- 第一種
-- 事務(wù)的處理方法
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
?
?
-- 第二種方法
-- 采用光標(biāo)的方式
?
--DECLARE cursorname cursor for select 'drop PROCEDURE? '+name from sys.objects where name like 'xx%' and xtype = 'P' -- 刪除對(duì)應(yīng)的存儲(chǔ)過程
DECLARE cursorname cursor for select 'drop Trigger' + name from sys . objects where name like '%' and type = 'TR' -- 刪除對(duì)應(yīng)的觸發(fā)器
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
?
-- 第三種方法
-- 簡易辦法,查詢出來后,再在數(shù)據(jù)庫中執(zhí)行
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'
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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