SQL Server SQL语句可以有多长字符?

Soh*_*ani 14 sql sql-server-2008

SQL Server中SQL语句的最大长度是多少?此长度是否取决于SQL Server的版本?

例如,在

DECLARE @SQLStatement NVARCHAR(MAX) = N'Something' 
EXEC(@SQLStatement) 
Run Code Online (Sandbox Code Playgroud)

所述@SQLStatement允许是X个字符长.什么是X?

Eri*_*lje 13

根据文档,它将是您网络数据包大小的65,536倍

似乎至少从SQL Server 2005开始就是这样

  • 并且人们认为这是愚蠢的问题,然后微软不会对SQL语句施加长度限制.HA.好问题Sohell Farahany. (2认同)
  • @Evan - 是的,这个问题并不完全清楚,所以我认为大多数人都不明白他在询问最大查询大小(至少这是我认为他要求的) (2认同)

Eri*_*ith 5

文档中的逐字逐字:

65,536 * 网络数据包大小

什么不清楚,但任何理智的人都会立即质疑,“网络数据包大小”是什么意思?

在这种情况下,正如预期的那样,网络数据包大小并不指物理大小,因为这会破坏端到端保证传输流协议 (TCP) 的抽象,而是指表格上下文中的数据包大小SQL Server 用于通信的数据流协议。根据同一文档,TDS 数据包的默认大小为4KB

  • 65,536 * 4096 = 268,435,456 字节(如果有人想要实际数字) (2认同)