Как сохранить значение столбца без идентификатора в SQL Server? - PullRequest
0 голосов
/ 27 февраля 2011

Если у меня есть таблица со столбцом идентификаторов в качестве первичного ключа, я бы использовал scope_identity () для получения последнего значения идентификатора, вставленного во время области.Что делать, если первичный ключ - это не столбец идентификации, а nvarchar (256) со значением по умолчанию newid () для генерации значения.После выполнения вставки, есть ли функция, которую я могу использовать, чтобы получить это значение и сохранить его в какой-то переменной?Мне нужно будет вставить это значение в другие идентификаторы столбцов в других таблицах.

Вот пример того, что я имею в виду.В таблице aspnet_Users идентификатор пользователя описан выше, как если бы я хотел использовать идентификатор пользователя в качестве FK в моей собственной таблице, было бы нормально использовать это автоматически сгенерированное значение newid () или есть лучший способ?Если это лучший способ, как я могу хранить его легко?

Спасибо

1 Ответ

6 голосов
/ 27 февраля 2011

Предложение OUTPUT в INSERT - это то, что вы ищете. См. эту статью MSDN.

в основном:

DECLARE @newkey TABLE (keys varchar(25));

INSERT INTO actual_table (nonAutoIncId,other1,other2,other3)
OUTPUT INSERTED.nonAutoIncId INTO @newkey
VALUES ('NewId',1,2,3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...