2016-10-06 26 views
-1

我正在更新現有數據庫表。如何向現有數據庫添加更多行表

表中有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

我什麼先清除列m試圖做的是將所有VALUES添加到UID

我的列當前設置爲:

UID | Email | Name | Title | Company | Address1 | Address2 | DateCreated | 

我已將所有列設置爲空,除了UID,其中已包含像上面的值。只需要用新的值替換舊的值。但上述

+0

是的,有。剛添加的行必須與INSERT中列的列表具有相同的值(和類型)。 – Serg

+0

在一個實例中,你說你想添加新行,但是你也說行存在,你想改變這些值。哪一個?你知道INSERT和UPDATE之間的區別嗎?您不要將值添加到列,而是使用insert語句向表添加行。如果要更改現有行的值,請使用更新語句。 –

回答

1

您的問題聲明得到錯誤是在你的INSERT statment

一個例子是

INSERT INTO table (col1, col2, col3,...) 
VALUES(valCol1, valcol2, valcol3...) 

確保(col1, col2, col3...)列數是價值觀(valCol1, valcol2, valcol3...) 3列,並在3個值相同數量這種情況下

3

對於插入更多比一個值成列,你需要使Insert狀態NT這種格式

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

還要注意的是,這可以通過在VALUES列表直接插入行來構造的最大行數是1000 。所以,你必須打破INSERT語句轉換成1000行每INSERT

要插入超過1000行,請使用下列方法之一

  • 創建多個INSERT語句
  • 使用派生表
  • 通過使用bcp實用程序批量導入數據或BULK INSERT 聲明

Derived table方法

Insert INTO [survey].[dbo].[uid_table] (UID) 
select 'F32975648JX2' 
Union All 
Select 'F32975681JX2', 
Union All 
..+14998 more) 
+0

謝謝Prdp,我可以用你的第一個建議來解決我的問題。我將不得不更多地研究使用Union All – TechBar