sqlserver刪除所有表、視圖、存儲過程


declare proccur cursor
    for
        select [name] from sysobjects where type='P'
declare @procname varchar(100)
open proccur
fetch next from proccur into @procname
while(@@FETCH_STATUS = 0)
begin   
    --exec('drop proc ' + @procname)  --本句被注釋,使用時請取消

    print(@procname + '已被刪除')
    fetch next from proccur into @procname
end
close proccur
deallocate proccur
--------------------- 
版權聲明:本文為CSDN博主「xianyiqi」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xianyiqi/article/details/4297521

刪除存儲過程

 

 

 

 

--/第1步**********刪除所有表的外鍵約束*************************/
 
DECLARE c1 cursor for
select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '
from sysobjects
where xtype = 'F'
open c1
declare @c1 varchar(8000)
fetch next from c1 into @c1
while(@@fetch_status=0)
begin
exec(@c1)
fetch next from c1 into @c1
end
close c1
deallocate c1
 
--/第2步**********刪除所有表*************************/
 
use 命名空間21 GO
declare @sql varchar(8000)
while (select count(*) from sysobjects where type='U')>0
begin
SELECT @sql='drop table ' + name
FROM sysobjects
WHERE (type = 'U')
ORDER BY 'drop table ' + name
exec(@sql)
end

刪除表

 

 

--第一步,讀取所有視圖
select identity(int,1,1) flag,[name] names into #tmp2
from sysobjects where xtype='v'
--第二步循環刪除
 
 declare @sql varchar(8000)
while (select count(*) from #tmp2  )>0
begin
SELECT @sql='drop view ' + names
FROM #tmp2
 
ORDER BY  + names

exec(@sql)

SELECT @sql='delete  from #tmp2 where names =''' + names+N'''' FROM #tmp2  ORDER BY  + names

exec(@sql)

end

刪除所有的視圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM