SQL Server 中 8060 限制

2010-08-28 10:48:27来源:西部e网作者:

在 Microsoft® SQL Server™ 中,表中行的最大允许大小为 8060 字节。一个行不能跨数据页进行拆分。一个数据页大小为 8 KB,由数据行和一些内部数据结构组成。

所以下面的SQL 语句创建表会报警告信息:

CREATE TABLE [dbo].[TestTable] (
 [ID] [int] IDENTITY (1, 1) NOT NULL ,
 [content1] [nvarchar] (4000) NULL ,
 [content2] [nvarchar] (4000) NULL
)

Warning: The table 'TestTable' has been created but its maximum row size (16029) exceeds the maximum number of bytes per row (8060). INSERT or UPDATE of a row in this table will fail if the resulting row length exceeds 8060 bytes.

但是表仍然被创建了。但是在你做 Insert  Update 操作的时候,就会报错误信息。

解决方法:

重新设计表结构。把它分成两个表,或者用Text字段。

Text 字段由于它的存储方式。他在数据行只占16个字节的指针。

关键词:SQLServer

赞助商链接: