我有一个num
在 SQL 中调用的列,我最初从 1 自动递增。我知道我可以使用以下方法从另一个值开始序列:
ALTER TABLE [myDatabase].[dbo].[myTable] AUTO_INCREMENT=500
现在已经存在的记录是什么。是否可以增加这些num
值?不删除记录?
您无法更新标识列,但可以将数据移动到另一个位置,删除原始数据,然后设置 identity_insert 并使用更新的 incrimentor 将数据移回。
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