MSSQL错误#120

时间:2014-12-01 21:55:20

标签: sql-server

我有以下sql:

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

运行它会抛出MSSQL Err#120,这意味着列数与INSERT对齐。 table2有5列,table1有14.我是否正确假设这是错误的原因?我问的原因是:a)不熟悉 MSSQL 和b)我不熟悉他们的数据库。

1 个答案:

答案 0 :(得分: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