优选主流主机商
任何主机均需规范使用

高效清除DiscuzNT论坛数据表及存储过程全方位指南

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

未经允许不得转载:搬瓦工中文网 » 高效清除DiscuzNT论坛数据表及存储过程全方位指南