3

我正在研究 MSDN 中的一个示例,该示例使用一个小型数据库来演示数据驱动测试,这是简单的模式:

CREATE TABLE dbo.LogonInfoTest
   (
   UserId nchar(256) NOT NULL PRIMARY KEY CLUSTERED,
   Password nvarchar(256) NULL,
   IsValid bit NOT NULL
   )  ON [PRIMARY]
GO

我的问题是:选择 nchar 作为 UserId 的数据类型和 nvarchar 作为 Password 的数据类型的根本原因是什么?

4

1 回答 1

5

没有理由。主键应该是 NVARCHAR(256),因为我很难相信 UserId总是正好256 个字符。现在这个模式可能会浪费(大量)磁盘空间。请注意,使用 SQL Server 2008行压缩存储,固定长度列将作为可变长度列存储在磁盘上(删除尾随空格),但前提是启用行压缩。

于 2010-09-13T22:35:19.633 回答