sql server 删除所有表、视图、存储过程
本文来自:http://www.cnblogs.com/yjss/articles/2065664.html
1.删除表
use 数据库名
declare mycur cursor local for select [name] from dbo.sysobjects where xtype='U'
declare @name varchar(100)
OPEN mycur
FETCH NEXT from mycur into @name
WHILE @@FETCH_STATUS = 0
BEGIN
exec('drop table ' + @name)
FETCH NEXT from mycur into @name
END
CLOSE mycur
2.删除视图
use 数据库名
declare mycur cursor local for select [name] from dbo.sysobjects where xtype='V'
declare @name varchar(100)
OPEN mycur
FETCH NEXT from mycur into @name
WHILE @@FETCH_STATUS = 0
BEGIN
exec('drop VIEW ' + @name)
FETCH NEXT from mycur into @name
END
CLOSE mycur
3.删除存储过程
use 数据库名
declare mycur cursor local for select [name] from dbo.sysobjects where xtype='P'
declare @name varchar(100)
OPEN mycur
FETCH NEXT from mycur into @name
WHILE @@FETCH_STATUS = 0
BEGIN
exec('drop PROCEDURE ' + @name)
FETCH NEXT from mycur into @name
END
CLOSE mycur
4.查看被锁表
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT'
5.清除锁死的表
Exec dbo.sp_lock begin declare @i int--定义要清除的线程id declare @SQL nvarchar(3000); set @i =0; while(@i<10000) begin --清除所有的占用线程 set @SQL=N'kill '+convert(varchar(20),@i) exec sp_executesql @SQL; set @i=@i+1; end end

浙公网安备 33010602011771号