当我在具有INT类型主键的表中创建新记录并且想要检索其ID的值时,我将使用类似以下的方法:
INSERT INTO MyTable (Fields)
VALUES (MyValues);
SELECT SCOPE_IDENTITY();
但是,这不适用于UNIQUEIDENTIFIER类型的主键。因此解决方案是:
INSERT INTO MyTable (Fields)
OUTPUT Inserted.MyPrimaryField
VALUES (MyValues);
不幸的是,这不适用于链接服务器中的远程表,因为我读取错误:
A remote table cannot be used as a DML target in a statement which includes an OUTPUT clause or a nested DML statement.
还有其他选择吗?