首页 新闻 赞助 找找看

关于数据库清空的问题

0
悬赏园豆:10 [已解决问题] 解决于 2009-09-14 13:42

测试的时候往数据库中添加了很多的数据,其中有很多的字段是自动增长的。

现在程序要发布了 ,我想问一下如何把数据库中的表清空的没有一点痕迹。

 

天堂口的主页 天堂口 | 小虾三级 | 园豆:514
提问于:2009-09-10 14:38
< >
分享
最佳答案
0

以下清空数据库中所有的表:

use MyDB
go

Declare
@t varchar (1024)
Declare tbl_cur cursor for
select TABLE_NAME from INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'

OPEN tbl_cur

FETCH NEXT from tbl_cur INTO @t

WHILE @@FETCH_STATUS = 0
BEGIN
EXEC ('TRUNCATE TABLE '+ @t)
FETCH NEXT from tbl_cur INTO @t
END

CLOSE tbl_cur
DEALLOCATE tbl_Cur


truncate table之后,表的自增长字段还是从默认的1开始或你指定的序号开始

IF OBJECT_ID('b') IS NOT NULL
drop table b
create table b(id int identity(1,1),ba int,bb int)
--truncate table b
insert into b
select 1,1 union all
select 2,2 union all
select 1,1

select * from b

id ba bb
1 1 1
2 2 2
3 1 1
--truncate table b
insert into b
select 1,1 union all
select 2,2 union all
select 1,1

select * from b

id ba bb
1 1 1
2 2 2
3 1 1


如果有外键, 可以先临时禁用外键,然后完成后再启用外键!

另外, 可以直接生成数据库脚本啊! 把存储过程、视图和约束信息包含在生成脚本即可。

收获园豆:10
邀月 | 高人七级 |园豆:25475 | 2009-09-10 14:48
其他回答(3)
0

我碰到这个问题就、先吧数据清空了,然后把自动增长列的属性调整一下,变成普通的类型,然后-保存-再调整成自动增长列。哈哈....

邢少 | 园豆:10926 (专家六级) | 2009-09-10 15:20
0

你可以“生成SQL脚本”就可以了

Mr雨 | 园豆:1199 (小虾三级) | 2009-09-10 20:47
0

truncate table 应该可以,如果你是很多表关联的,也可以先Drop table 然后再 create table

eaglet | 园豆:17139 (专家六级) | 2009-09-11 09:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册