为什么行溢出在 SQL Server 2005 上不起作用

Rka*_*ede 6 sql-server-2005 sql-server varchar

我有一个包含大约 860 列的表的 SQL Server 2005 数据库。除了 ID 列之外,所有其他列都是 varchar(N),其中 N 是 100 或 500。在插入超过 8000 个字符的新行(通过 InfoPath 表单作为前端)时,SQL 服务器返回以下错误:

Cannot create a row of size 11024 which is greater than the allowable maximum of 8060.
Run Code Online (Sandbox Code Playgroud)

据我了解,由于Row Overflow ,这不应该发生。

任何人都可以提供一些有关为什么会发生这种情况的见解吗?

mrd*_*nny 4

这只是一条警告消息。您可以使用未记录的命令 DBCC IND 来验证行是否溢出到 ROW_OVERFLOW_DATA 页。

就我个人而言,这听起来像是一张可以承受一定标准化的表格。