我有一个带有identity(1,1)字段的表,我想使用insert into将值插入其中。 如何将值插入到indentity字段中? 谢谢!
答案 0 :(得分:0)
SET IDENTITY_INSERT tbl ON
-- insert (include the ID column)
SET IDENTITY_INSERT tbl OFF
答案 1 :(得分:0)
你必须这样做:
SET IDENTITY_INSERT TableNameHere ON
然后你可以在其中插入值:
SET IDENTITY_INSERT IdentityTable ON
INSERT IdentityTable(TheIdentity, TheValue)
VALUES (3, 'First Row')
SET IDENTITY_INSERT IdentityTable OFF
答案 2 :(得分:0)
如果您的问题实际上是如何让系统在标识列中提供适当的值,那么答案就是您在插入查询中没有提到它:
INSERT INTO Table (ColumnA_That_Isnt_Identity,ColumnB_That_Isnt_Identity)
VALUES (9,'abc')
然后IDENTITY
列会自动分配一个值。
如果您想知道为此列分配的值,您可以将SCOPE_IDENTITY
作为单独的SELECT
查询,也可以包含OUTPUT
clause,如下所示:
INSERT INTO Table (ColumnA_That_Isnt_Identity,ColumnB_That_Isnt_Identity)
OUTPUT inserted.ID_Column_That_Is_The_Identity
VALUES (9,'abc')
当IDENTITY_INSERT
为ON
时,您告诉系统“相信我,我会提供适当的值”。当它是OFF
时,您告诉系统提供值。这是你的两个选择。
没有办法将IDENTITY_INSERT
设置为ON
,并且在设置时,请求系统提供值。鉴于IDENTITY_INSERT
只有一个目的,允许你提供值,这绝不是问题。