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

时间:2012-02-08 21:01:50

标签: sql sql-server-2008

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

例如,在

DECLARE @SQLStatement NVARCHAR(MAX) = N'Something' 
EXEC(@SQLStatement) 

@SQLStatement允许长度为X个字符。什么是X?

4 个答案:

答案 0 :(得分:13)

根据the documentation

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

至少从SQL Server 2005开始,这似乎是一样的

答案 1 :(得分:4)

逐字the documentation

  

65,536 *网络数据包大小

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

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

答案 2 :(得分:3)

如果您的变量定义为NVARCHAR(MAX),那么它的大小可以是2GB(请记住NVARCHAR每个字符使用两个字节,压缩除外)。但是,如果你接近这个大小的任何地方,你的SQL语句的长度可能是你最不担心的。

答案 3 :(得分:1)

SQL语句的长度尽可能短,同时保持人类的可理解性

由于将SQL语句解析和编译为数据库引擎的实际作业非常快,因此语句的长度对解析器而言并不重要。更重要的是,特别是对于手工构造的SQL语句,人类可以在将来维护该语句。