SSDT功能的一部分是能够通过临时的默认约束(称为“智能默认值”)用虚拟值填充非可空列。
根据反复试验,我发现了以下“智能默认”值:
---------------------------------------------------------------
| Type | Smart Default Value |
---------------------------------------------------------------
| int | 0 |
---------------------------------------------------------------
| uniqueidentifier | 00000000-0000-0000-0000-000000000000 |
---------------------------------------------------------------
| "string" | '' |
---------------------------------------------------------------
有人知道每种类型是否存在“智能默认”值的资源吗?
答案 0 :(得分:10)
我也找不到官方文件。我根据实验SSDT列出了一个列表,并在SSDT Default Values For Smart Defaults发布了它,但它包含在下面以供快速参考。 (对不起 - 我最好用格式化)。
bigint 0
binary 0x00
bit 0
char empty string
date 1900-01-01
datetime 1900-01-01 00:00:00.000
datetime2 1900-01-01 00:00:00.0000000
datetimeoffset 1900-01-01 00:00:00.0000000 +00:00
decimal 0
float 0
hierarchyid smart default not valid
image 0x
int 0
money 0.00
nchar empty string
ntext empty string
numeric 0
nvarchar empty string
real 0
smalldatetime 1900-01-01 00:00:00
smallint 0
smallmoney 0.00
sql_variant smart default not valid
text empty string
time 00:00:00.0000000
timestamp null value not allowed
tinyint 0
uniqueidentifier 00000000-0000-0000-0000-000000000000
varbinary 0x
varchar empty string
xml empty string