我正在更新现有的数据库表。
表有14924行,我正在尝试插入需要15000行的新数据。
运行我的查询时,我收到此错误消息:
INSERT语句中的列数少于指定的值 在VALUES条款中。 VALUES子句中的值的数量必须为 匹配INSERT语句中指定的列数。
有没有办法根据需要添加额外的76行?
我正在使用MSSMS(Microsoft SQL Server Management Studio)
查询我正在运行:
Insert INTO [survey].[dbo].[uid_table] (UID)
VALUES ('F32975648JX2','F32975681JX2',..+14998 more)
我应该先设置为NULL
我要做的是将所有VALUES添加到UID
列
我的列目前设置为:
UID | Email | Name | Title | Company | Address1 | Address2 | DateCreated |
除了UID之外,我已将所有列设置为NULL,UID已包含上述值。只需要用新值替换旧值。 BUt获得上述错误
答案 0 :(得分:3)
要将 more 多于一个值插入一列,您需要以此格式制作Insert
语句
Insert INTO [survey].[dbo].[uid_table] (UID)
VALUES ('F32975648JX2'),
('F32975681JX2'),
..+14998 more)
另请注意,通过直接在VALUES
列表中插入行可构建的最大行数为 1000 。因此,您必须将INSERT
语句分成1000
行INSERT
要插入超过1000行,请使用以下方法之一
Derived table
方法
Insert INTO [survey].[dbo].[uid_table] (UID)
select 'F32975648JX2'
Union All
Select 'F32975681JX2',
Union All
..+14998 more)
答案 1 :(得分:1)
您的问题出在您的INSERT
声明中
一个例子是
INSERT INTO table (col1, col2, col3,...)
VALUES(valCol1, valcol2, valcol3...)
确保列数(col1, col2, col3...)
与VALUES (valCol1, valcol2, valcol3...)
3列相同,在这种情况下为3个值