我有以下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)我不熟悉他们的数据库。
答案 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