1

あるdbテーブルから読み取り、同じデータを別のdbテーブルに書き込んでいます。これで、ソースの日付フィールドにデータ()がないnull場合、宛先テーブルに書き込まれると、同じフィールドがデフォルトで日付「1/1/1900」になります。プログラムのどこにもこのデフォルト値を設定していません。なぜそれが起こっているのかわからない。

null各フィールドの値をチェックして別の値に設定する代わりに、どうすればそれを防ぐことができますか?

EclipseとSQLServerデータベースを使用しています。

ありがとう。

4

1 に答える 1

2

1つの可能性は、日付列のデフォルト値が実際には「1/1/1900」に設定されていることです。その場合は、SQLのALTERTABLEを使用してこのデフォルトを削除します。SQLServerの構文は次のとおりです。

ALTER TABLE Table1 ALTER COLUMN DateColumn1 DROP DEFAULT

更新:この日付はすぐに使用できるデフォルトのように見えるので、次のように設定してみてください。

ALTER TABLE Table1 ALTER COLUMN DateColumn1 DATETIME NULL

ここでいくつかの重要な注意事項:

  1. テーブルの変更を開始する前にデータベースをバックアップしてください(!)
  2. ALTERコマンドで同じデータ型(例:DATETIME)を使用します。
于 2012-08-13T18:20:33.157 に答える