首页 > 网站 > 建站经验 > 正文

快速删除DiscuzNT论坛数据表和存储过程

2024-04-25 20:33:49
字体:
来源:转载
供稿:网友

本来想一个一个删除的,打开数据库一看那么多的表和存储过程,就放弃这种笨办法了,于是决定用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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表