データベースのテーブルに新しい列を追加しました。この新しい列を挿入するようにコードを変更する代わりに、挿入時にデフォルト値を持つようにこの新しい列を作成してみました。
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
列の明示的なリストがある場合、この問題は発生しませんでした。コードの修正と問題の回避に取り組む必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加