就是说数据库里有很多表,表间有主外关系的,比较复杂,而且表也很多,还有大量存储过程,现在要清空数据库,就是回到初期创建新数据库的状态,怎么做呢?
(因为用虚拟主机,数据库就是这么搞的,所以想知道SQL语句,这个问题就解决了)
如果是Oracle的话,查询sysobjects表.
SELECT
name
FROM
sysobjects
WHERE
type = 'U'
写一个存储过程.循环.逐个删除.
最后自己手动删除刚刚写的那个存储过程.
declare @trun_name varchar(8000)
set @trun_name=''
select @trun_name=@trun_name + 'truncate table ' + [name] + ' ' from sysobjects where xtype='U' and status > 0
exec (@trun_name)
这是清空所有表的
--删除库中所有表
exec Sp_MSForEachTable @Command1 = “drop table‘?’”
清空储数据库所有存过程:
declare @string varchar(8000)
while exists(select name from sysobjects where type='p' and status>=0)
begin
select top 1 @string='drop procedure' +name from sysobjects where type = 'p' and status>=0
--select @string
exec (@string)
go
打开数据库==》文件==》新建数据库