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 列才能使其正常工作?
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 列才能使其正常工作?
从文档中:
在 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 包含该语句生成的最后一个标识值。
这适用于所有其他身份检查器。
如果这是您需要的,您可能应该在插入后立即编写一个小 SP 来更新记录。鉴于您的 primary_key 似乎是ID
a 和 a 的一些不寻常的组合varchar
,您最好也检查一下您的数据模型。
重要的是要注意与@@IDENTITY
和的区别SCOPE_IDENTITY()
:
@@IDENTITY and SCOPE_IDENTITY return the last identity value generated in any table in the current session. However, SCOPE_IDENTITY returns the value only within the current scope; @@IDENTITY is not limited to a specific scope.