Когда я создаю новую запись в таблице с первичным ключом типа INT и хочу получить значение ее идентификатора, я использую что-то вроде этого:
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.
Есть ли другие варианты?