SQL SERVER truncate table后会不会重置表的自增值

今天清理业务库数据的时候,开发人员说可以使用truncate table把两个表的所有数据清理掉

这两个表都有自增ID,都做了表分区,单表200GB,使用 SELECT IDENT_CURRENT('') 的时候两个表

的当前自增值是3000012,这两个表几乎是一模一样的,除了一两个字段不一样

我执行两个SQL语句把两个表都truncate掉,然后就忘记了收缩数据库和重置种子值

由于分区函数的最后一个值是2000000,那么后插入的数据都会积聚在最后一个文件组

1、重置种子值,让数据重新利用第一个文件组

2、修改分区方案,使用 split range,向分区函数添加新值

虽然不重置也可以,但是如果使用 split range,向分区函数添加新值工作量就大了,为了不增加工作量当然重置种子值最好

因为当时太忙,继续搬数据库去了

下班回来才想起这件事,还需要收尾工作,马上远程到业务数据库的机器,使用下面的SQL语句查看分区情况

--分区情况
SELECT  pat.* ,
        fg.[groupname] AS '分区方案对应的文件组名称' ,
        patsch.name '当前分区函数对应的分区方案'
FROM    sys.destination_data_spaces AS dds
        INNER JOIN sysfilegroups AS fg ON dds.[data_space_id] = fg.[groupid]
        INNER JOIN ( SELECT $PARTITION.Fun_New_PostLog_Id(id) AS 分区编号 ,
                            MIN(id) AS Min_value ,
                            MAX(id) AS Max_value ,
                            COUNT(id) AS 记录数
                     FROM   dbo.PostLog
                     GROUP BY $PARTITION.Fun_New_PostLog_Id(id)
                   ) AS pat ON pat.[分区编号] = dds.[destination_id]
        INNER JOIN sys.partition_schemes AS patsch ON dds.[partition_scheme_id] = patsch.data_space_id
ORDER BY  pat.[分区编号]

发现两个表的新插入的数据都放在第一个文件组,并且自增id又从1开始了

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/SQLServer/

马上测试一下,结果发现truncate table真的重置了种子,以前是知道的,不过以前用到truncate的情况很少

USE [test]
GO
CREATE TABLE truncatetabletestidentity (id INT IDENTITY(1,1),NAME NVARCHAR(20))
GO

INSERT [dbo].[truncatetabletestidentity]
SELECT 'ni' UNION ALL
SELECT 'we' UNION ALL
SELECT 'pp'

SELECT * FROM [dbo].[truncatetabletestidentity]
GO

TRUNCATE TABLE [dbo].[truncatetabletestidentity]

接下来收缩数据库,磁盘空间又“多出“了450GB空间,磁盘预警消失了~

如有不对的地方,欢迎大家拍砖o(∩_∩)o

2014-4-7补充:

在MSDN里面提到

DBCC CHECKIDENT (Transact-SQL)

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索select
, 数据
, 函数
, 两个
, 自增值
, TRUNCATE
, 重置自动编号
, 种子
查看表分区
sqlserver truncate、sql server truncate、地铁房子会不会增值、灵活组排s7会不会重置、崩坏3首充会不会重置,以便于您获取更多的相关知识。

时间: 2024-10-31 03:46:42

SQL SERVER truncate table后会不会重置表的自增值的相关文章

SQL SERVER打补丁后的版本号

server SQL SERVER打补丁后的版本号,select @@version.Version NumberService Pack8.00.194Microsoft SQL Server 20008.00.384Microsoft SQL Server 2000 SP18.00.532Microsoft SQL Server 2000 SP28.00.760Microsoft SQL Server 2000 SP38.00.818Microsoft SQL Server 2000 SP3

sql server 2008分组后如何实现分页查询

问题描述 sql server 2008分组后如何实现分页查询 我的SQL语句是这样的 select left(loginDate,10) ,skipUrl,count(loginDate) FROM loginlog group by skipUrl,left(loginDate,10) order by left(loginDate,10) desc 我自己试了很多总方式都不对的,不知道问题出在哪里的了?希望大侠帮忙解决下的了谢谢! select top 10 left(loginDate,

sql server 查询table表名

问题描述 sql server 查询table表名 use huqiangdataset select name from dbo.sysobjects where name= 'T_stainlesssteelstuff' 我想将'T_stainlesssteelstuff' 用变量表示,这个小分号怎么处理? 解决方案 不能和Use连用. select name from dbo.sysobjects where name=@name 如果当前数据库不是要查询的数据库的话,可以这样 selec

SQL Server安装完成后3个需要立即修改的配置选项_MsSql

你用安装向导安装了全新的SQL Server,最后你点击了完成按钮.哇噢~~~现在我们可以把我们的服务器进入生产了!抱歉,那并不是真的,因为你的全新SQL Server默认配置是错误的. 是的,你没看错:SQL Server的默认安装在很多方面的配置是错误的.在今天的文章里,我想给你展示下,为了更快的性能,在SQL Server安装完成后3个你需要立即修改的配置选项.我们开始吧! 最大服务器内存(Max Server Memory)免责声明:如果这些天你在32位系统上运行你的SQL Server

SQL Server 2000卸载后重新安装的问题

1.安装SQL Server 2000出现"以前进行的程序安装创建了挂起的文件操作"的解决办法: a.在开始->运行中输入regedit b.到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置 c.在右边窗口右击PendingFileRenameOperations,选择删除,然后确认   2.SQL Server 2000卸载后不能重新安装: a.删除注册表如下两个键     HKEY_

SQL Server 2012安装后服务器名称找不到的解决办法

网上说使用localhost即可,确实没错,但是有的仍旧会报出无法找到错误,我在无法通过的时候又重新安装了SQLServer,这次选中全部默认安装,之前使用的是选择安装,然后发现多了几个配置,其中有一项是建立实例,然后我再次选默认,安装完成后,再启动SQLServer2012,服务器名称中输入localhost,连接,ok. 猜想:估计是安装时没有建立实例所致,本机就没有安装实例 ,所以填localhost也没有用了. 以上所述是小编给大家介绍的SQL Server 2012安装后服务器名称找不

SQL Server安装完成后3个需要立即修改的配置选项

你用安装向导安装了全新的SQL Server,最后你点击了完成按钮.哇噢~~~现在我们可以把我们的服务器进入生产了!抱歉,那并不是真的,因为你的全新SQL Server默认配置是错误的. 是的,你没看错:SQL Server的默认安装在很多方面的配置是错误的.在今天的文章里,我想给你展示下,为了更快的性能,在SQL Server安装完成后3个你需要立即修改的配置选项.我们开始吧! 最大服务器内存(Max Server Memory) 免责声明:如果这些天你在32位系统上运行你的SQL Serve

SQL Server数据库崩溃后的恢复之法

任何数据库系统都无法避免崩溃的状况,即使你使用了Clustered,双机热备--仍然无法完全根除系统中的单点故障,何况对于大部分用户来说,无法承受这样昂贵的硬件投资.所以,在系统崩溃的时候,如何恢复原 有的宝贵数据就成为一个极其重要的问题了. 在恢复的时候,最理想的情况就是你的数据文件和日志文件都完好无损了,这样只需要sp_attach_db,把数据文件附加到新的数据库上即可,或者在停机的时候把所有数据文件(一定要有master等)都copy到原有路径下也行, 不过一般不推荐这样的做法,sp_a

SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型

原文:SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应(比如OGC)的GIS专业理论知识. 5.其他相关知识.   通过前面几篇文章介