как вставить в 2 таблицы? - PullRequest
0 голосов
/ 27 мая 2020

"Сделайте запрос, чтобы все заказы сотрудников из employeeUK были в таблице orderUK"

my table of employeeUK:

select *
into employeeUK
from Employees
where Country = 'UK'

, тогда я хочу создать таблицу orderUK:

select *
into orderUKcoba
from Orders o join employeeUK e
where (e.EmployeeID = o.EmployeeID)

, но я получил

Неправильный синтаксис рядом с ключевым словом «где».

как это исправить?

Ответы [ 4 ]

0 голосов
/ 27 мая 2020

Как вставить в таблицу 2?

Вы можете сделать это, используя OUTPUT Clause следующим образом:

INSERT INTO TargetTable1(Column1, ...)
OUTPUT INSERTED.Column1, ... INTO TargetTable2
SELECT Column1, ...
FROM SourceTable;

Вот простой пример на db <> fiddle

0 голосов
/ 27 мая 2020

JOIN требуется ON предложение:

select o.col, . . . , e.col, . . . -- Qualify all column names explicitly 
into orderUKcoba
from Orders o join 
     employeeUK e
     on e.EmployeeID = o.EmployeeID;
0 голосов
/ 27 мая 2020

Вы должны использовать предложение ON вместо предложения WHERE при присоединении к таблице, используйте запрос ниже

select *
into orderUKcoba
from Orders o join employeeUK e
on (e.EmployeeID = o.EmployeeID);
0 голосов
/ 27 мая 2020

В правильном синтаксисе используется ON:

select *
into orderUKcoba
from Orders o join
     employeeUK e
     on e.EmployeeID = o.EmployeeID;

Это вернет ошибку, потому что по крайней мере один столбец дублируется (EmployeeId) и таблицы не могут иметь повторяющиеся имена столбцов. Но это не тот вопрос, который вы задали.

Вы должны явно перечислять столбцы для новой таблицы.

...