2016-02-08 4 views
0

Я пытаюсь вставить в table1 (colunm1, column2, column3), где column1 имеет несколько значений.SQL Server insert into

например:

INSERT INTO table1 (col1, col2, col3) 
VALUES (1419002, 1003, 
     (select TaskTypeCode 
      from TaskTypeCodes 
      where TaskTypeID in (898,788,878,874))) 

Ошибка:

Msg 512, Level 16, State 1, Line 2
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <=, >, >= or when the subquery is used as an expression. The statement has been terminated.

+3

Это потому, что у вас есть запрос, где вам нужен столбец, и этот запрос возвращает более 1 строки. –

ответ

2

Просто используйте Insert into..Select синтаксис. Попробуйте

INSERT INTO table1 (col1, col2, col3) 
SELECT 1419002, 1003, TaskTypeCode 
FROM TaskTypeCodes 
WHERE TaskTypeID in (898,788,878,874) 

Примечание: на основе ошибки, указанной в вопросе выше Вставить запрос будет вставить более одной строки. Если вы не хотите, чтобы это произошло, ограничьте строки, добавив Where (фильтр) или TOP

+0

Спасибо, это сработало. – redninam

+0

Мне только пришлось удалить лишний) в конце. – redninam