怎样删除一个数据库中的所有对象????

[复制链接]
查看11 | 回复9 | 2006-8-12 08:11:03 | 显示全部楼层 |阅读模式
我用的是虚拟主机,
提供商给我分配了一个数据库,我没有删除这个数据库的权限。

由于我对数据库的设计做了大的改动,
所以,
我想把数据库中原先建的所有对象,包括表、视图、存储过程等等,(数据也不要了)全部删除重新再建。怎么做啊??

有没有这样的sql语句或系统存储过程?
没有,我该怎么做???
回复

使用道具 举报

千问 | 2006-8-12 08:11:03 | 显示全部楼层
楼主可以参考一下的方法:
/*
功能:删除当前数据库有用户表数据
设计:
时间:2006-05
备注:该脚本执行危险性为★★★★★,不要随意执行
*/
DECLARE @tablename varchar(50)
DECLARE @truncatesql varchar(255)
DECLARE TrCun_Cursor CURSOR FOR
select [name] from sysobjects where type = 'U'
OPEN TrCun_Cursor
FETCH TrCun_Cursor INTO @tablename
WHILE(@@fetch_status = 0)
BEGIN

SET @truncatesql = 'truncate table ' + @tablename

--exec(@truncatesql) --当要删除时,就去掉--

PRINT @truncatesql

FETCH TrCun_Cursor INTO @tablename
END
CLOSE TrCun_Cursor
DEALLOCATE TrCun_Cursor
复制代码
回复

使用道具 举报

千问 | 2006-8-12 08:11:03 | 显示全部楼层
declare @sql varchar(4000)
set @sql=''
select @sql=@sql+' exec sp_MSdrop_object '+cast(fkeyid as varchar) from sysreferences
exec( @sql)
set @sql=''
select @sql=@sql+' exec sp_MSdrop_object '+cast(id as varchar) from sysobjects where objectproperty(id,'IsMSShipped')=0
exec( @sql)
回复

使用道具 举报

千问 | 2006-8-12 08:11:03 | 显示全部楼层
最初由 ASP_NET 发布
[B]楼主可以参考一下的方法:
/*
功能:删除当前数据库有用户表数据
设计:
时间:2006-05
备注:该脚本执行危险性为★★★★★,不要随意执行
*/
DECLARE @tablename varchar(50)
DECLARE @truncatesql varchar(255)
DECLARE TrCun_Cursor CURSOR FOR
select [name] from sysobjects where type = 'U'
OPEN TrCun_Cursor
FETCH TrCun_Cursor INTO @tablename
WHILE(@@fetch_status = 0)
BEGIN

SET @truncatesql = 'truncate table ' + @tablename

--exec(@truncatesql) --当要删除时,就去掉--

PRINT @truncatesql

FETCH TrCun_Cursor INTO @tablename
END
CLOSE TrCun_Cursor
DEALLOCATE TrCun_Cursor
复制代码[/B]




感谢回复,
可代码好像不行啊,
对于有FOREIGN KEY 约束引用的表删除不了。。。。。。。。。。。。。
回复

使用道具 举报

千问 | 2006-8-12 08:11:03 | 显示全部楼层
最初由 andy1995 发布
[B]declare @sql varchar(4000)
set @sql=''
select @sql=@sql+' exec sp_MSdrop_object '+cast(fkeyid as varchar) from sysreferences
exec( @sql)
set @sql=''
select @sql=@sql+' exec sp_MSdrop_object '+cast(id as varchar) from sysobjects where objectproperty(id,'IsMSShipped')=0
exec( @sql) [/B]




不行啊,
报错:
找不到存储过程 'sp_MSdrop_object'。!
俺用的是sql 2005
回复

使用道具 举报

千问 | 2006-8-12 08:11:03 | 显示全部楼层
up!
回复

使用道具 举报

千问 | 2006-8-12 08:11:03 | 显示全部楼层
....需要这么麻烦吗? 直接用企业管理器自动生成语句脚本,钩选Drop选项,取消Creat 选项,自动生成语句脚本后。。。。简单方便,安全可靠。。。。
呵呵。。。。。。。。。。。。
回复

使用道具 举报

千问 | 2006-8-12 08:11:03 | 显示全部楼层
最初由 Hanson_hao 发布
[B]....需要这么麻烦吗? 直接用企业管理器自动生成语句脚本,钩选Drop选项,取消Creat 选项,自动生成语句脚本后。。。。简单方便,安全可靠。。。。
呵呵。。。。。。。。。。。。 [/B]






回复

使用道具 举报

千问 | 2006-8-12 08:11:03 | 显示全部楼层
thank
Hanson_hao
very much !!!!

好办法,我怎么就没想到呢。。。。。。。
回复

使用道具 举报

千问 | 2006-8-12 08:11:03 | 显示全部楼层
路过,不过大汗中!你要全部删除不如重新建一个数据库,用企业管理器把老库的表结构生成成语句到新库中执行一下吧。而且不用删除老库!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行