Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
sc2r2bey Member Откуда: Сообщений: 213 |
Есть две связанные таблицы Как правильно сделать запрос INSERT INTO table1 (field1, field2, field3) VALUES (value1, value2, value3) INSERT INTO table2 (field1, field2) VALUES (ID созданный в предыдущем запросу, value2) |
13 авг 18, 16:21 [21640786] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
sc2r2bey, OUTPUT https://docs.microsoft.com/en-us/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-2017 |
13 авг 18, 16:25 [21640791] Ответить | Цитировать Сообщить модератору |
sc2r2bey Member Откуда: Сообщений: 213 |
когда во второй таблице есть внешний ключFOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE то при выполнении запроса, вылетает ошибка:
а когда ключ убираю то все корректно добавляется в обе таблицы запрос: INSERT INTO user ( username, email ) OUTPUT INSERTED.id, 'text' INTO table2( user_id, message ) VALUES ( 'user', 'user@example.org', ) |
||
13 авг 18, 17:23 [21640883] Ответить | Цитировать Сообщить модератору |
Владимир Затуливетер Member Откуда: Сообщений: 427 |
черзе scope_identity сделайтеinsert into user ( username, email ) values ( 'user', 'user@example.org' ) into table2 ( user_id, message ) values ( scope_identity(), 'text' ) |
13 авг 18, 17:26 [21640888] Ответить | Цитировать Сообщить модератору |
sc2r2bey Member Откуда: Сообщений: 213 |
пишет:
|
||
13 авг 18, 17:32 [21640898] Ответить | Цитировать Сообщить модератору |
sc2r2bey Member Откуда: Сообщений: 213 |
упс INSERT пропустил, а так работает |
13 авг 18, 17:34 [21640901] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
В документации есть же пример. Однако, надо знать, есть ли у таблицы триггеры, какие они и что делают. |
||
13 авг 18, 18:37 [21640995] Ответить | Цитировать Сообщить модератору |
sc2r2bey Member Откуда: Сообщений: 213 |
тригеров нет |
13 авг 18, 19:11 [21641028] Ответить | Цитировать Сообщить модератору |
sc2r2bey Member Откуда: Сообщений: 213 |
это этом пример?DECLARE @MyTableVar table( NewScrapReasonID smallint, Name varchar(50), ModifiedDate datetime); INSERT Production.ScrapReason OUTPUT INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.ModifiedDate INTO @MyTableVar VALUES (N'Operator error', GETDATE()); --Display the result set of the table variable. SELECT NewScrapReasonID, Name, ModifiedDate FROM @MyTableVar; --Display the result set of the table. SELECT ScrapReasonID, Name, ModifiedDate FROM Production.ScrapReason; |
13 авг 18, 19:16 [21641034] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |