Есть ли способ вернуть только ЧАСТЬ составного первичного ключа? - PullRequest
0 голосов
/ 06 октября 2010

У меня есть таблица SQL с составным ключом, ID (int, автоматически сгенерированный) и TaxpayerID (varchar, пользователь вводит его). Когда пользователь регистрируется, он вводит идентификатор налогоплательщика, а идентификатор налогоплательщика в сочетании с идентификатором составляют первичный ключ.

Обычно после ввода записи я возвращаю использованный @@ Identity и возвращаю его в переменную Integer в моем приложении .NET. Тем не менее, кажется, что он терпит неудачу, я думаю, потому что это составной ключ.

Есть ли способ вернуть только ЧАСТЬ составного первичного ключа? (в данном случае просто поле идентификатора)

1 Ответ

2 голосов
/ 06 октября 2010

Предложить возврат SCOPE_IDENTITY(). Это вернет последнее значение IDENTITY, созданное в вашей области видимости. Я бы посоветовал предпочесть SCOPE_IDENTITY(), потому что

SCOPE_IDENTITY и @@ IDENTITY возвращают последние значения идентификаторов, сгенерированные в любой таблице в текущем сеансе. Однако SCOPE_IDENTITY возвращает значения, вставленные только в текущую область; @@ IDENTITY не ограничивается конкретной областью действия.

В вашем случае, это немного запутано с составом, но если вы ищете автоинкрементное поле IDENTITY, это сделает это за вас. ПК на столе не имеет значения. Если есть поле, помеченное IDENTITY, и вы хотите его вернуть, используйте SCOPE_IDENTITY() сразу после INSERT.

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