sql nvarchar长度是否重要?

时间:2017-10-04 20:00:21

标签: sql-server-2008

我正在查看设置为nvarchar(50)的表格内容只有2个字符或空。改变它是否重要?如果它在IN子句中经常使用,那么最佳类型是什么?

2 个答案:

答案 0 :(得分:1)

那么为什么不使用nvarchar(2)来确保只写入2个字符呢?这是一个约束,确保数据符合预期。

此外,如果您知道这些值只会是ASCII,那么请使用varchar代替nvarchar

最后,长度约束对IN子句没有任何影响,假设所有值都不会超过2的长度。

答案 1 :(得分:1)

如果大小始终为2或nchar(2),我会将char(2)用于unicode或null用于非unicode。

使用超大的可变宽度列会影响内存授予和行大小估计,因为SQL Server将假定每行包含的值是声明的列大小的一半;虽然这可能不是宽度为50的重要因素,但它对较大尺寸的影响会更明显。

参考: