EXECUTE @Var 字符限制 SQL Server 2008 R2

mis*_*ger 3 sql t-sql sql-server-2008-r2

我一直在寻找这个问题的答案,但没有什么是明确的,所以希望有人知道他们的头脑。

EXECUTEVARCHAR(MAX)变量一起使用时,是否有字符限制?我做了一些实验,似乎当加载一个变量然后调用时EXECUTE @var,实际传递到服务器的内容有字符限制。当在EXECUTE没有变量的情况下调用并在那里构建字符串时,一切似乎都有效......是否有原因?返回的错误信息是:

名称 '(在此处插入我的 SQL 语句变量的 881 个字符中的 643 个左右)' 不是有效标识符

有没有人知道为什么会发生这种情况?EXECUTE @var失败,EXECUTE 'string'工作...

小智 5

我认为是: exec @mystr --assumes 该字符串是一个过程名称,限制为 8000 字节

exec (@mystr) -- 有 2 GB 的限制。