Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 6787|Ответ: 1

[Источник] SQL Server возвращает первичный ключ после вставки

[Скопировать ссылку]
Опубликовано 07.07.2020 11:55:16 | | | |
Требования: В хранящейся процедуре необходимо вставить фрагмент данных в таблицы A и B, где основное внешнее ключ между таблицами A и таблицей B, столбцы, связанные с таблицей B, являются первичными ключами таблицы A, нужно вставить значение первичного ключа таблицы A после завершения вставки, получить значение первичного ключа таблицы A, а затем вставить данные в таблицу B.

После вставки записи нужно сразу получить возвращаемое значение первичного ключа в его технический лист. Этот первичный ключ генерируется автоматически.

Сначала создаём временную таблицу для тестирования, код выглядит следующим образом:


@@IDENTITY

После завершения оператора INSERT, SELECT IN или массового копирования @@IDENTITY содержит последнее идентифицирующее значение, полученное этим оператором. Если этот оператор не затрагивает таблицы с идентифицированными столбцами, @@IDENTITY возвращает NULL. Если вставлять несколько строк, генерируются несколько значений идентификаторов, @@IDENTITY возвращается последнее значение идентификатора. Если этот оператор запускает один или несколько триггеров, выполняющих операцию вставки, производящую идентифицированное значение, вызов @@IDENTITY сразу после выполнения оператора вернёт последнее идентифицирующее значение, сгенерированное триггером. Если оператор INSERT или SELECT INTO не работает, массовая репликация не работает, либо если транзакция откатывается, значение @@IDENTITY не восстанавливается к прежним настройкам.

ВСТАВЛЕН ВЫХОД

Для INSERT можно использовать вставленную таблицу, чтобы запросить свойства новой строки

Тестовый код следующий:


Эффект следующий:







Предыдущий:Условный запрос MSSQL WHERE игнорирует это условие
Следующий:Агрегация точек карты Baidu
 Хозяин| Опубликовано 07.07.2020 13:22:22 |
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com