私は通常、SOで質問に対する回答を見つけることができますが、このトピックに関する情報を見つけることができません(間違った質問をしている可能性があります)。
背景:6年前、一部の開発者はVisualFoxProデータベースをSQLServer 2005(テーブルの構造とデータ)にアップサイズしました。このプロセスにより、データ構造とパフォーマンスを改善するために修正しようとしているさまざまなバグが発生しました(TEXTをVARCHAR(MAX)に変更し、一部のFloatをDECIMALに変更し、未使用の列を削除します...)
私の以前のタスクは、対応するデフォルトオブジェクトが存在しなかったすべてのテーブルのすべての列に割り当てられたすべてのデフォルト制約を見つけて、 / 、などにsys.default_constraints
空の文字列を割り当てて修正することでした...(の30%以上壊れた列...はい私は知っています-_-wtf!.私のスクリプトはスムーズに機能しました。char
varchar
0
Decimal
楽しみのために、これらのテーブルの1つで固定列を検証しましたが、変更しなかった列のデフォルト値が、使用していた単純な空の文字列ではなく、であるSP_HELP
ことに気付きました。char
(space((1)))
''
私の質問は:これらの列をデフォルト値のままにしておくべきです(space((1)))
か?または、次のように変更する必要が''
あります(スクリプトを変更するのは本当に簡単です)。
私の賭けは、それを変更する必要があるということです(すべての挿入で関数を呼び出すことは無料ではありません)が、最初に確認するように依頼したかったのです。
PD:私はDBAではありませんが、時々DBAハットを使用しなければならない開発者です。