我通常可以在 SO 中找到我的问题的答案,但我找不到关于这个主题的信息(可能是我提出了错误的问题)。
背景:六年前,一些开发人员将 Visual FoxPro 数据库升级为 SQL Server 2005(表结构和数据)。该过程引入了各种错误,现在我正在尝试修复这些错误以改进数据结构和性能(将 TEXT 更改为 VARCHAR(MAX),将一些浮点数更改为 DECIMAL,删除未使用的列......)
我之前的任务是:查找分配给所有表中不存在相应默认对象的所有列的所有默认约束sys.default_constraints
,并修复它们,将空字符串分配给char
/ varchar
,0
toDecimal
等......(超过 30%列坏了...是的,我知道-_- wtf!我的脚本运行顺利,到目前为止一切顺利。
只是为了好玩,我SP_HELP
在其中一个表中执行以验证固定列,但注意到char
我没有更改的列的默认值为(space((1)))
,而不是我使用的普通空字符串''
。
我的问题是:我是否应该将这些列原封不动地保留为默认值(space((1)))
?还是我应该将其更改为''
(更改脚本来做到这一点真的很容易)?
我敢打赌我应该改变它(在每次插入时调用一个函数不能是免费的),但想先确定一下。
PD:我不是 DBA,而是一个时不时必须戴上 DBA 帽子的开发人员。