怎样清空SQL SERVER数据库,清空后让表的ID自增列从1开始??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样清空SQL SERVER数据库,清空后让表的ID自增列从1开始??相关的知识,希望对你有一定的参考价值。

数据库名:class
要清空的表名:课程表 学生表 选课表
求代码,多谢!!!

SQL Identity自增列清零方法
1.使用DBCC控制台命令:
dbcc checkident(表名,RESEED,0)

2.truncate table 也可将当前标识值清零
但当有外键等约束时,无法truncate表

可以先禁用外键约束来truncate表:
--禁用外键约束
exec sp_msforeachtable 'alter table ? nocheck constraint all'
--清空数据
truncate table 表名
--启用外键约束
exec sp_msforeachtable 'alter table ? check constraint all'

我常用 truncate table 进行数据表内数据的清空,同时将ID列重新开始计数!

truncate table 课程表
truncate table 学生表
truncate table 选课表
参考技术A

清空数据库用语句

drop database 数据库名;

如果是清空表并让id自增列从1开始的话,需要按如下步骤:

1、清空表

truncate table 表名;

2、删除ID列

alter table 表名 drop column ID;

3、新增ID列为自增字段

alter table 表名 add id int identity (1,1) primary key;

参考技术B 将ID删除,重新新增一个本回答被提问者采纳

怎样清空数据库sql 2000,清空后让表的id从1开始

1、可以看到向mysql数据库表中新增一条记录,id为59818,可是明明只有一条记录。

2、可以通过“truncate table 表名”方式重置清空id,让id从1开始自动递增。

3、运行“truncate table crew_test”语句,进行重置清空crew_test表id。

4、再次打开crew_test表,新增两条记录,可以看到id从1开始递增。

5、如果想避免id间隔的问题,可以不设置id为自动递增,设计表之后,将id字段的自动递增取消。

6、将id设置为字符类型,然后通过程序随机生成不重复的字符串,新增数据的时候给id赋值。

参考技术A

具体操作步骤如下:

1、首先,打开sql,可以看到有一条新记录添加到了ID为59818的mysql数据库表中,但是显然只有一条记录,如下图所示,然后进入下一步。

     

2、其次,可以通过truncate table 表名来清除ID,以便ID自动从1开始增加,如下图所示,然后进入下一步。

     

3、接着,输入“
 truncate table crew_test”并运行,以重置并清除crew_test表ID,如下图所示,然后进入下一步。    

     

4、最后,再次打开crew_test表,并添加两个新的记录。可以看到表的id从1开始增加,如下图所示。这样,问题就解决了。    

     

     

参考技术B TRUNCATE TABLE
删除表中的所有行,而不记录单个行删除操作。

语法
TRUNCATE TABLE name
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。

TRUNCATE TABLE 清空表所有数据,而且使标识列从标识种子(一般标识种子从1开始)重新开始
参考技术C 可以在当前的数据库下自己写个存储过程来执行这些操作

存储过程如下:

CREATE PROCEDURE DeleteAll
AS
begin
declare @name nvarchar(50)
declare @sql nvarchar(50)
declare TableName CURSOR
FOR (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE ='BASE TABLE')

open TableName
fetch next from TableName into @name

while (@@fetch_status=0)
begin
select @sql = 'delete ' + @name
print @sql
execute sp_executesql @sql --删除表的数据
DBCC CHECKIDENT(@name,reseed,1) --重新设置ID种子
fetch next from TableName into @name
end
close TableName
DEALLOCATE TableName
end
GO

你自己在调试下看符不符合你的要求本回答被提问者采纳
参考技术D truncate table '表名' 这个命令,可以清空数据,而且不产生删除日志,可以让自增ID从新开始。

以上是关于怎样清空SQL SERVER数据库,清空后让表的ID自增列从1开始??的主要内容,如果未能解决你的问题,请参考以下文章

怎样清空数据库sql 2000,清空后让表的id从1开始

怎样清空数据库sql 2000,清空后让表的id从1开始

SQL SERVER 怎样清空表的数据

SQL SERVER 怎样清空表的数据

SQL Server 不清空数据,修改数据库字段结构,阻止保存要求重新创建表的更改

SQL。。。快速清空表的问题。。高手》》