2010-11-10 2 views
1

У меня есть таблица с 2 столбцами. Я хочу предоставить значение 1-го столбца, но с помощью оператора select запросить другую таблицу, чтобы выяснить значение, которое будет отображаться во втором столбце первой таблицы.SQL INSERT с дополнительным запросом

Вот что я придумал, но я знаю, что это неправильно ..

INSERT INTO VehicleModels_VehicleSubModels (VehicleModelId, VehicleSubModelYearId) 
(SELECT @ModelId, VehicleSubModelYearId 
FROM VehicleSubYearIntermediate 
WHERE [email protected] 
AND [email protected]) 

По сути, я хочу, чтобы обеспечить значение для VehicleModelId через @ModelId, но она не позволит мне использовать его вне оператора выбора ,

ответ

5

Попробуйте удалить скобки вокруг SELECT, так как, возможно, вы видите неправильную синтаксическую ошибку?

INSERT INTO VehicleModels_VehicleSubModels (VehicleModelId, VehicleSubModelYearId) 
SELECT @ModelId,VehicleSubModelYearId 
FROM VehicleSubYearIntermediate 
WHERE [email protected]delId 
    AND [email protected] 
+0

Проблема в том, что @ModelId не приходит из таблицы в выражении select, она вставлена ​​на основе значения некоторого элемента управления asp.net. Я хочу предоставить значение для VehicleModelId и просто использовать оператор SELECT для предоставления значения для VehicleSubModelYearId. –

+0

Вот что это делает, хотя .... вы передаете значение для @ModelId, и это постоянное значение будет использоваться для каждой строки, возвращаемой SELECT, и перейдите в VehicleModelId. – AdaTheDev

+0

Действительно? Казалось, что он проверит другую таблицу для строк со столбцом, сопоставляемым с @ModelId. Я обнаружил, что он работает, у меня была проблема с некоторыми другими проверками, которые я делал. Спасибо за разъяснения. –

Смежные вопросы