我正在查看设置为nvarchar(50)
的表格内容只有2个字符或空。改变它是否重要?如果它在IN子句中经常使用,那么最佳类型是什么?
答案 0 :(得分:1)
那么为什么不使用nvarchar(2)
来确保只写入2个字符呢?这是一个约束,确保数据符合预期。
此外,如果您知道这些值只会是ASCII
,那么请使用varchar
代替nvarchar
。
最后,长度约束对IN
子句没有任何影响,假设所有值都不会超过2的长度。
答案 1 :(得分:1)
如果大小始终为2或nchar(2)
,我会将char(2)
用于unicode或null
用于非unicode。
使用超大的可变宽度列会影响内存授予和行大小估计,因为SQL Server将假定每行包含的值是声明的列大小的一半;虽然这可能不是宽度为50
的重要因素,但它对较大尺寸的影响会更明显。
参考: