Получение последнего идентификатора из межсерверной вставки с использованием SQL Server - PullRequest
3 голосов
/ 06 мая 2009

Я использую межсерверную вставку

INSERT INTO server.database.dbo.table (Field) VALUES('test')

После этого мне нужно получить идентификатор последней вставки. Однако, когда я запускаю функцию scope_identity, я не получаю последний идентификатор с внешнего сервера.

SELECT @ID=SCOPE_IDENTITY()

Как мне получить последний идентификатор из межсерверной вставки?

Ответы [ 2 ]

4 голосов
/ 06 мая 2009

С http://msdn.microsoft.com/en-us/library/ms187342.aspx

Область действия функции @@ IDENTITY текущая сессия на локальном сервере на котором он выполнен. Эта функция не может быть применен к удаленному или связанному сервера. Чтобы получить значение личности на другом сервере выполните хранимая процедура на этом пульте или связанный сервер и хранить это процедура (которая выполняется в контекст удаленного или связанного сервер) собрать значение личности и вернуть его вызывающему соединению на локальный сервер.

1 голос
/ 06 мая 2009

Я почти уверен, что вам придется обернуть INSERT в хранимую процедуру на удаленном связанном сервере, и она будет возвращать значение столбца IDENTITY.

ссылка: http://msdn.microsoft.com/en-us/library/ms187342.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...