簡體   English   中英

列名或提供的值數與表定義不匹配。 默認值?

[英]Column name or number of supplied values does not match table definition. Default Value?

我已經向數據庫中的表添加了新列。 我沒有更改代碼來插入此新列,而是嘗試創建此新列以在插入時具有默認值。

    ALTER TABLE myTableName
    ADD DateColumn SMALLDATETIME DEFAULT GetDate()
    DECLARE @Dates SMALLDATETIME
    SET @Dates =  GetDate()

     UPDATE myTableName
     SET DateColumn = @Dates
     ALTER COLUMN DateColumn SMALLDATETIME NOT NULL

問題是我上面出現此錯誤,因為有13列,多年未觸及的代碼僅插入12列,但它們不是顯式的(例如

Insert into table ColumnNames Values(values))

只是平原

  insert into table Values (xxx, xxx ,xxx)

我如何才能使插入內容忽略新列,而僅在每次添加新行時讓新列插入默認數據?

這聽起來有點激進,但是您可以執行以下操作:

  • 將表重命名為新名稱
  • 創建具有舊名稱但沒有新列的視圖

瞧! 該視圖將是可更新的,並且舊代碼應該可以運行。

注意:如果insert具有明確的列列表,則永遠不會發生此問題。 您應該修復代碼以及解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM