0

我有一个num在 SQL 中调用的列,我最初从 1 自动递增。我知道我可以使用以下方法从另一个值开始序列:

ALTER TABLE [myDatabase].[dbo].[myTable] AUTO_INCREMENT=500

现在已经存在的记录是什么。是否可以增加这些num值?不删除记录?

4

1 回答 1

0

您无法更新标识列,但可以将数据移动到另一个位置,删除原始数据,然后设置 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
于 2013-08-15T16:07:30.450 回答