本來想一個一個刪除的,打開數據庫一看那么多的表和存儲過程,就放棄這種笨辦法了,于是決定用SQL語句來搞定。代碼如下:
-----------------------------刪除數據表---------------------
DECLARE @au_lname VARCHAR(40),@SQLString NVARCHAR(500)
DECLARE tb CURSOR FOR
SELECT name FROM sysobjects WHERE xtype='U' and name like 'dnt%'
OPEN tb
-- Perform the FIRST FETCH.
FETCH NEXT FROM tb INTO @au_lname
-- CHECK @@FETCH_STATUS TO see IF there ARE ANY more ROWS TO FETCH.
WHILE @@FETCH_STATUS = 0
BEGIN
-- This IS executed AS long AS the previous FETCH succeeds.
FETCH NEXT FROM tb INTO @au_lname
SET @SQLString='DROP TABLE '+ @au_lname
EXEC sp_executesql @SQLString
--DROP TABLE @au_lname
END
CLOSE tb
DEALLOCATE tb
GO
-----------------------------刪除存儲過程---------------------
DECLARE @au_lname VARCHAR(40),@SQLString NVARCHAR(500)
DECLARE tb CURSOR FOR
SELECT name FROM sysobjects WHERE xtype='p' and name like 'dnt%'
OPEN tb
-- Perform the FIRST FETCH.
FETCH NEXT FROM tb INTO @au_lname
-- CHECK @@FETCH_STATUS TO see IF there ARE ANY more ROWS TO FETCH.
WHILE @@FETCH_STATUS = 0
BEGIN
-- This IS executed AS long AS the previous FETCH succeeds.
FETCH NEXT FROM tb INTO @au_lname
SET @SQLString='DROP PROCEDURE '+ @au_lname
EXEC sp_executesql @SQLString
--DROP TABLE @au_lname
END
CLOSE tb
DEALLOCATE tb
GO
新聞熱點
疑難解答