2014-12-01 4 views
-4

У меня есть следующий SQL:MSSQL ошибка # 120

INSERT INTO [dbo].[table1] 
    ([col1],[col2],[col3],...[col14]) 
SELECT * FROM [dbo].Table2 
GO 

Запуск он бросает MSSQL Err # 120, что означает число столбцов выстраиваться вставки. table2 имеет 5 столбцов, а таблица1 имеет 14. Я был бы прав, если предположить, что это является причиной ошибки? Причина, по которой я спрашиваю, заключается в том, что a) Не знаком с MSSQL и b) Я не знаком с их базой данных.

+1

MySQL или MS SQL? –

+0

это MSSQL, и я просматриваю его в Microsoft SQL Server Management Studio. – visevo

+0

THI должно иметь одинаковое количество столбцов 'INSERT INTO t1 (col1, col2, col3, col4, col5) SELECT * FROM t2' где t2 имеет 5 столбцов – Mihai

ответ

4

Да, это является причиной вашей ошибки.

Вы должны:

INSERT INTO [dbo].[table1] 
    ([col1],[col2],[col3],...[col14]) 
SELECT 
    col1, col2, col3, col4, col5, --your table's columns 
    'const1', null, 1, etc... --other values that you want for the other columns, 
FROM [dbo].Table2    --defaults, constants, null, etc. 

GO 

или

INSERT INTO [dbo].[table1] 
    ([col1],[col2],[col3],[col4],[col5]) --the rest will have their default value. 
SELECT 
    col1, col2, col3, col4, col5 
FROM [dbo].Table2 
GO 
+0

спасибо за подтверждение. – visevo

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