我在SQL中有一个名为num
的列,我最初从1开始自动递增。我知道我可以使用以下命令从另一个值启动序列:
ALTER TABLE [myDatabase].[dbo].[myTable] AUTO_INCREMENT=500
现在已有的记录是什么。是否有可能增加num
值?没有删除记录?
答案 0 :(得分:0)
您无法更新标识列,但可以将数据移动到其他位置,删除原始数据,然后设置identity_insert并使用更新的执行器将数据移回。
SET NOCOUNT ON
-- Create table for test
CREATE TABLE #MyTable ( Id INT IDENTITY(1,1), Data INT )
INSERT INTO #MyTable ( Data ) VALUES ( 10 )
INSERT INTO #MyTable ( Data ) VALUES ( 20 )
INSERT INTO #MyTable ( Data ) VALUES ( 30 )
-- Store data in temp location
SELECT *
INTO #TempLocation
FROM #MyTable
-- Delete original data
DELETE #MyTable
-- Insert with updated id
SET IDENTITY_INSERT #MyTable ON
INSERT INTO #MyTable ( Id, Data )
SELECT Id + 500, Data
FROM #TempLocation
SET IDENTITY_INSERT #MyTable OFF