如何向现有数据库表添加更多行

时间:2016-10-06 17:28:32

标签: sql sql-server

我正在更新现有的数据库表。

表有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获得上述错误

2 个答案:

答案 0 :(得分:3)

要将 more 多于一个值插入一列,您需要以此格式制作Insert语句

Insert INTO [survey].[dbo].[uid_table] (UID) 
VALUES ('F32975648JX2'),
       ('F32975681JX2'),
         ..+14998 more)

另请注意,通过直接在VALUES列表中插入行可构建的最大行数为 1000 。因此,您必须将INSERT语句分成1000INSERT

要插入超过1000行,请使用以下方法之一

  • 创建多个INSERT语句
  • 使用派生表
  • 使用bcp实用程序或BULK INSERT批量导入数据 声明

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个值