SQL Server中SQL语句的最大长度是多少?此长度是否取决于SQL Server的版本?
例如,在
中DECLARE @SQLStatement NVARCHAR(MAX) = N'Something'
EXEC(@SQLStatement)
@SQLStatement
允许长度为X个字符。什么是X?
答案 0 :(得分:13)
至少从SQL Server 2005开始,这似乎是一样的
答案 1 :(得分:4)
65,536 *网络数据包大小
什么不清楚,但任何理智的人会立即质疑,“网络数据包大小”是什么意思?
网络数据包大小,在这种情况下,正如预期的那样,不指的是物理大小,因为这会破坏端到端保证传输流协议(TCP)的抽象,而是指的是SQL Server用于通信的表格数据流协议上下文中的数据包大小。根据相同的文档,TDS数据包的默认大小为 4KB 。
答案 2 :(得分:3)
如果您的变量定义为NVARCHAR(MAX)
,那么它的大小可以是2GB(请记住NVARCHAR
每个字符使用两个字节,压缩除外)。但是,如果你接近这个大小的任何地方,你的SQL语句的长度可能是你最不担心的。
答案 3 :(得分:1)
SQL语句的长度应尽可能短,同时保持人类的可理解性。
由于将SQL语句解析和编译为数据库引擎的实际作业非常快,因此语句的长度对解析器而言并不重要。更重要的是,特别是对于手工构造的SQL语句,人类可以在将来维护该语句。