在 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个字节的指针。