powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как можно сделать вложенный запрос?
9 сообщений из 9, страница 1 из 1
Как можно сделать вложенный запрос?
    #39686987
Фотография sc2r2bey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две связанные таблицы
Как правильно сделать запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
INSERT INTO table1
(field1, field2, field3)
VALUES
(value1, value2, value3)
INSERT INTO table2
(field1, field2)
VALUES
(ID созданный в предыдущем запросу, value2)
...
Рейтинг: 0 / 0
Как можно сделать вложенный запрос?
    #39686990
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как можно сделать вложенный запрос?
    #39687023
Фотография sc2r2bey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда во второй таблице есть внешний ключ
Код: sql
1.
FOREIGN KEY (user_id)  REFERENCES user (id) ON DELETE CASCADE


то при выполнении запроса, вылетает ошибка:
авторЦелевая таблица "table2" предложения OUTPUT INTO не может находиться ни с одной стороны связи (первичный ключ, внешний ключ). Обнаружено ссылочное ограничение "FK__table2__user_id__7C510D32".

а когда ключ убираю то все корректно добавляется в обе таблицы

запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
INSERT INTO user (
		username, 
		email
)
OUTPUT INSERTED.id, 'text'
INTO table2(
user_id,
message
)
VALUES (
		'user',
		'user@example.org',
)
...
Рейтинг: 0 / 0
Как можно сделать вложенный запрос?
    #39687026
Владимир Затуливетер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
черзе scope_identity сделайте

Код: sql
1.
2.
3.
4.
5.
insert into user ( username, email )
values ( 'user', 'user@example.org' )

into table2 ( user_id, message )
values ( scope_identity(), 'text' )
...
Рейтинг: 0 / 0
Как можно сделать вложенный запрос?
    #39687028
Фотография sc2r2bey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишет:
авторНеправильный синтаксис около ключевого слова "INTO".
...
Рейтинг: 0 / 0
Как можно сделать вложенный запрос?
    #39687029
Фотография sc2r2bey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упс INSERT пропустил, а так работает
...
Рейтинг: 0 / 0
Как можно сделать вложенный запрос?
    #39687055
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sc2r2beyкогда во второй таблице есть внешний ключСделайте табличную переменную и OUTPUT в неё.
В документации есть же пример.

Однако, надо знать, есть ли у таблицы триггеры, какие они и что делают.
...
Рейтинг: 0 / 0
Как можно сделать вложенный запрос?
    #39687068
Фотография sc2r2bey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тригеров нет
...
Рейтинг: 0 / 0
Как можно сделать вложенный запрос?
    #39687070
Фотография sc2r2bey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это этом пример?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
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; 
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как можно сделать вложенный запрос?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]