在SQL INSERT上我可以同时使用标识列作为另一列中插入数据的一部分吗?

时间:2013-06-25 07:32:43

标签: sql sql-server primary-key identity sql-insert

CREATE TABLE Table1 :
Id int IDENTITY(1,1),
PK_Column1 nvarchar(50) Primary Key.

INSERT INTO Table1 (PK_Column1) VALUES ('Name'+Id)

结果:

Id  PK_Column1
1   Name1

这可能吗?或者我是否需要自己管理Id列以使其正常工作?

1 个答案:

答案 0 :(得分:2)

来自documentation

  

INSERT,SELECT INTO或批量复制语句完成后,@@ IDENTITY包含语句生成的最后一个标识值。

这适用于所有其他身份检查员。

如果这是你需要的,你可能应该在插入后立即写一个小SP来更新记录。鉴于您的primary_key似乎是IDvarchar的一些不寻常的组合,您也最好检查您的数据模型。

请注意与@@IDENTITYSCOPE_IDENTITY()

的区别
  

@@ IDENTITY和SCOPE_IDENTITY返回当前会话中任何表中生成的最后一个标识值。但是,SCOPE_IDENTITY仅在当前范围内返回值; @@ IDENTITY不限于特定范围。