尝试将记录从一个表插入另一个表。目标表(@TableName)有三个额外的列而不是源表(@Sourcetable)。这三列是浮点列,设置为NULL。
只要插入有效,无论是插入零还是保留NULL都无关紧要
该程序因此而失败,并给出以下错误
列名或提供的值数与表不匹配 定义
请参阅以下程序,以下操作步骤中的任何注释:
var React = require('react');
var App = React.createClass({
render: function() {
return (
<div>
App!
</div>
)
}
});
module.exports = App;
答案 0 :(得分:1)
如果表定义不相同,则不能使用星号包含所有字段:
您必须使用类似
的内容INSERT INTO table1 (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM table2
当你试图填写表格时,你可以尝试创建像这样的列列表
SELECT STUFF(
(
SELECT ',' + QUOTENAME(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='YourTableName'
FOR XML PATH('')),1,1,'')
此列列表必须包含在您的声明中......
答案 1 :(得分:0)
如果您没有相同的列,则必须明确列出它们。如果目标表有更多,那么你可以在插入端列出它们,如果源表有更多,那么在select中,但最好是在两者中列出它们。
你也可以使用select和insert的视图,这样列的数量就会匹配,但是无论如何有插入+ select *而不指定列都不是我推荐的,因为如果有人添加新内容它会破坏列到表中。