SQL触发器批量删除数据库中的表


以下通过触发器批量删除数据库中的表,SQL2008已验证

 1 DECLARE @Table NVARCHAR(300)
 2 DECLARE @Count Int = 0  
 3 DECLARE tmpCur CURSOR FOR  
 4 SELECT name FROM sys.objects WHERE TYPE='U' AND name LIKE N'temp_cost%' order by name
 5 OPEN tmpCur 
 6 FETCH NEXT FROM tmpCur INTO @Table 
 7 WHILE @@FETCH_STATUS= 0   
 8     BEGIN 
 9         DECLARE @sql VARCHAR(100) 
10         SELECT @sql='drop table ['+@Table+']'
11         EXEC(@sql)
12         Print convert(varchar(100),@Count)+':'+@sql
13         SET @Count=@COUNT + 1 
14         FETCH NEXT FROM tmpCur INTO @Table 
15     END 
16 CLOSE tmpCur
17 DEALLOCATE tmpCur