我需要用脚本将一个数据库中的内容全删了,包括表、视图、存储过程、关系图、约束等等,但数据库本身不能删除,就是相当于把这个库清空了,请教高手该脚本该怎么写...
解决方案 »
- SQL语句 如何删除指定日期段的记录
- sql并发处理的问题.
- 急求sqlserver2000测试或考试题
- 这是什么原因,请高手大哥们指教~~~~~~急!!!!
- sql增加判断列
- ★请教个初级的问题,关于用户权限(在线,马上给分)
- 如何从Sql Server导出数据到Excel/Access?我已经实现(Access->excel,excel->sql server)(纯SQL语句实现)
- 如何删除表中所有记录
- 如果索引的存储结构是应用JAVA数据结构,会怎样呢?
- 给datetime数据类型的字段自动加入一个默认值是如何设置的???默认值设getdate()没用
- 数据库的复制问题,和数据导入导出(请教高手,在线等...)
- sql server 2000 完整性约束问题? 请大虾帮忙给看看啊!
+quoteName
from sysobjects
where
xtype in(...)
--生成语句执行
gocreate database database_name
go
declare @tablename varchar(100)
declare cur_t cursor for select name from sys.sysobjects where xtype='U' and uid=1
open cur_t
fetch next from cur_t into @tablename
while(@@fetch_status=0)
begin
declare @sql_t varchar(1000)
set @sql_t='drop table '+@tablename
exec(@sql_t)
fetch next from cur_t into @tablename
end
close cur_t
deallocate cur_t--删除所有的用户定义函数
declare @functionname varchar(100)
declare cur_f cursor for select name from sys.sysobjects where xtype='FN' and uid=1
open cur_f
fetch next from cur_f into @functionname
while(@@fetch_status=0)
begin
declare @sql_f varchar(1000)
set @sql_f='drop function '+@functionname
exec(@sql_f)
fetch next from cur_f into @functionname
end
close cur_f
deallocate cur_f--删除所有的视图
declare @viewname varchar(100)
declare cur_v cursor for select name from sys.sysobjects where xtype='V' and uid=1
open cur_v
fetch next from cur_v into @viewname
while(@@fetch_status=0)
begin
declare @sql_v varchar(1000)
set @sql_v='drop view '+@viewname
exec(@sql_v)
fetch next from cur_v into @viewname
end
close cur_v
deallocate cur_v--删除所有的存储过程,确保你的自定义的存储过程中不包含这样的名称"sp_名称"
declare @procname varchar(100)
declare cur_p cursor for select name from sys.sysobjects where xtype='p' and uid=1 and name not like 'sp_%'
open cur_p
fetch next from cur_p into @procname
while(@@fetch_status=0)
begin
declare @sql_p varchar(1000)
set @sql_p='drop view '+@procname
exec(@sql_p)
fetch next from cur_p into @procname
end
close cur_p
deallocate cur_p