使用分区来将非自增表改为自增表
---------------------------------------------------创建测试表TestTable001和TestTable002CREATE TABLE TestTable001( ID INT PRIMARY KEY, C1 VARCHAR(200))GOCREATE TABLE TestTable002( ID INT IDENTITY PRIMARY KEY, C1 VARCHAR(200))GO--向测试表TestTable001插入数据INSERT INTO TestTable001 SELECT ROW_NUMBER() OVER (ORDER BY object_id) AS RID, name FROM SYS.all_objectsGO---------------------------------------------------将分区表切换来将TestTable001换入到TestTable002中ALTER TABLE TestTable001SWITCH PARTITION 1 TO TestTable002--使用RESEED重置自增值DBCC CHECKIDENT('TestTable002',RESEED)--查看当前表中自增值SELECT IDENT_CURRENT('TestTable002')---------------------------------------------------插入测试INSERT INTO TestTable002(C1)SELECT 'Test'--查看上一次插入的自增IDSELECT @@IDENTITY
--=========================================
妹子来啦
- 1楼剑走江湖
- 使用分区数据切换的思路确实比较巧妙,避免了向自增列数据表中导入数据时开启显式插入功能。两个步骤就可以实现将数据导入到自增列的数据表中,第一步分区数据切换到目标数据表,第二步重置目标数据表的当前标识值。学习了,谢谢博主分享。