测试的时候往数据库中添加了很多的数据,其中有很多的字段是自动增长的。
现在程序要发布了 ,我想问一下如何把数据库中的表清空的没有一点痕迹。
以下清空数据库中所有的表:
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
如果有外键, 可以先临时禁用外键,然后完成后再启用外键!
另外, 可以直接生成数据库脚本啊! 把存储过程、视图和约束信息包含在生成脚本即可。
我碰到这个问题就、先吧数据清空了,然后把自动增长列的属性调整一下,变成普通的类型,然后-保存-再调整成自动增长列。哈哈....
你可以“生成SQL脚本”就可以了
用 truncate table 应该可以,如果你是很多表关联的,也可以先Drop table 然后再 create table