簡體   English   中英

使用默認值將新列添加到現有表

[英]Adding new column to existing table with default value

假設我有一個名為SerialNumbers的表,該表具有以下列:

  • ID (int)
  • 序列號(nvarchar)
  • IsValid (bit)
  • ToBeUsedBy (DateTime)

當前,該表被許多不同的應用程序使用。 現在,我們需要添加一個名為CurrentlyAt (int)的新列,該列將始終具有默認值1 我繼續並添加了默認值1的列。

所以我的問題是,我現在是否必須更改所有以前的insert查詢以包括新列,或者如果不將其添加到舊的insert語句中,則默認情況下會添加一個值?

答案當然取決於它。

只要您現有的INSERT語句具有顯式的列列表,就無需對其進行編輯,並且默認情況下將插入默認值。

INSERT INTO SerialNumbers (
  Id,
  SerialNumber,
  IsValid,
  ToBeUsedBy)
SELECT....

但是,如果您有任何沒有列列表的插入,它們將引發錯誤:

INSERT INTO SerialNumbers 
SELECT....

因為SELECTVALUES子句中的列數可能不再與INSERT目標表中的列數匹配。

出於這個原因,解決方案是添加顯式列列表,然后養成始終使用所述列表的習慣。

編輯:肖恩·蘭格的觀點,我假設新列NOT NULL 如果它可以為空,則是,會有更多可能的結果,這些結果可能會產生與預期不同的結果。

暫無
暫無

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

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