Вставить в две таблицы с внешним ключом Auto_in c MS SQL - PullRequest
0 голосов
/ 22 апреля 2020

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

У меня есть две таблицы, в которые я хочу вставить данные с помощью PHP.

Table1: ListID IDENTITY PK
        User
        date

Table2: ListID PK FK
        item   PK
        number

Как я могу сделать это за одну транзакцию, получив идентификатор IDENTITY из таблицы 1 в таблицу 2? В MS SQL.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Предпочитайте SCOPE_IDENTITY () вместо @@ identity. Вы никогда не узнаете, есть ли у вас какие-либо побочные эффекты (например, триггер), создающие другое значение идентификатора в вашем сеансе.

0 голосов
/ 22 апреля 2020

Один из вариантов - использовать @@IDENTITY или SCOPE_IDENTITY() для получения идентификатора последней вставленной строки.

begin transaction;
insert into table1(user, date) values(@user, @date);
insert into table2(listid, item, number) values(@@identity, @item, @number);
commit;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...