-3

以下脚本无法执行

SET IDENTITY_INSERT dbo.MyTable ON

-- the table only has three columns, so there's no ambiguity
INSERT INTO dbo.MyTable
VALUES (1, 2, 3)

SET IDENTITY_INSERT OFF

这会引发以下警告:

只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能为表 'dbo.MyTable' 中的标识列指定显式值。

当列是明确的时,脚本会按预期执行。

SET IDENTITY_INSERT dbo.MyTable ON

INSERT INTO dbo.MyTable (ColA, ColB, ColC)
VALUES (1, 2, 3)

SET IDENTITY_INSERT OFF

为什么必须使用列列表?

4

1 回答 1

1

安全。这样,它可以确保您确实指定了 id 列,否则如果您错误地将 IDENTITY_INSERT 设置为 ON,您可能会在很大程度上弄乱您的表。

于 2019-05-09T21:51:44.983 回答