2012-05-11 48 views
8

Varchar(max)列不允许为SQL Server中的主键。Varchar(max)列不允许为SQL Server中的主键

什么是可以作为主键的varchar类型的最大长度。

这可能是一个坏习惯,但遇到了这种情况。

+3

为什么你没有ID列? –

+0

除了你期望超过8000个字符的字段,你还没有使用varchar(max)?由于索引问题,您会遇到性能问题。 – HLGEM

回答

16

900字节是主键的最大长度,在我看来这是一个坏主意,为什么不使用代理键呢?

4

此问题已经回答in this thread;简短的答案是索引字段不能超过900字节。也就是说,使用长VARCHAR字段作为索引的原因通常是一个糟糕的主意,例如效率和可维护性等诸多原因。

3

主键在所有其他索引中用于标识行。将潜在的多兆字节值作为关键字是没有意义的,因此对任何关键字中的总字节数都有限制。

相关问题