2011-08-22 26 views
1

我想將數據從一個表插入另一個表。兩個表格都有大約100列。 它們不具有相同的結構,但「幾乎」:源表中的列數少於20列 - 其中一些不爲NULL。對於那些列,當然我必須定義一個默認值。如何獲取導致錯誤的列的名稱「列名或提供的值的數量與表定義不匹配」

我的第一個試驗導致的錯誤信息(驚喜驚喜):

列名或提供值的數目不匹配表定義

但在我複雜的情況下,此消息是不是很有幫助。有沒有辦法獲得更精確的錯誤信息?

+1

100 cols?聽起來像一個皮塔工作。 – Jacob

+0

不幸的是:不,我擔心 - SQL Server並沒有告訴你更多的東西:-( –

+0

)您是否將列和目標列並排來查看不匹配的位置。 – MaxiWheat

回答

2

建議使您的查詢更易於閱讀,而不是依賴來自RDBMS的錯誤消息。一個想法:

  • 把每列放在它自己的行。
INSERT INTO TargetTable (
    Col1, 
    Col2, 
    .... 
) 
SELECT 
    Col1, 
    Col2, 
    .... 
FROM SourceTable 
  • 創建一個新的Excel工作表。
  • 在SQL Server Management Studio中,Alt-F1爲您的TargetTable;將Column_name(也可能是Nullable值)複製粘貼到Excel工作表的ColumnA中。
  • 將TargetTable列複製/粘貼到ColumnB中。
  • 運行宏或視覺檢查/調整差異。你提到的空洞,你必須非正式地知道。
相關問題