Вимоги: У збереженій процедурі потрібно вставити фрагмент даних у таблиці A і B, де основний зв'язок зовнішнього ключа між таблицями A і таблицею B, стовпці, пов'язані з таблицею B, є первинними ключами таблиці A, потрібно вставити первинне значення ключа таблиці A після завершення вставки, отримати первинне ключове значення таблиці A, а потім вставити дані до таблиці B.
Після вставки запису потрібно одразу отримати повернене значення первинного ключа в його технічний лист. Цей первинний ключ генерується автоматично.
Спочатку створіть тимчасову таблицю для тестування, код виглядає так:
@@IDENTITY
Після завершення оператора INSERT, SELECT IN або масове копіювання @@IDENTITY містить останнє ідентифікаційне значення, отримане цим оператором. Якщо цей оператор не впливає на таблиці з ідентифікованими стовпцями, @@IDENTITY повертає NULL. Якщо вставляти кілька рядків, генерується кілька значень ідентифікатора, @@IDENTITY повертається останнє значення ідентифікатора. Якщо цей оператор запускає один або кілька тригерів, які виконують операцію вставки, що дає ідентифіковане значення, виклик @@IDENTITY одразу після виконання оператора поверне останнє ідентифікаційне значення, згенероване тригером. Якщо оператор INSERT або SELECT INTO не вдається, або масова реплікація не завершується, або якщо транзакція відкотиться назад, значення @@IDENTITY не повертається до попередніх налаштувань.
ВСТАВЛЕНО ВИХІД
Для INSERT можна посилатися на вставлену таблицю, щоб запитати властивості нового рядка
Тестовий код виглядає так:
Ефект такий:
|