我有一个variable
其中SQL
存储了字符串并正在通过它执行它exec()
Declare @sql varchar(max)
set @sql = Concat('select...',@var,'..') -- large string
exec (@sql)
但我得到错误说
sometext 附近的语法不正确
这是因为变量@sql
不能保存整个字符串。所以我通过将字符串拆分为两个不同的变量来修复并执行它
Declare @sql1 varchar(max),@sql2 varchar(max)
set @sql1 = 'select...'
set @sql2 = ' from sometable join....'
exec (@sql1+@sql2)
我检查了数据长度@sql1+ @sql2
Select Datalength(@sql1+ @sql2)
它回来了14677
现在的问题是为什么varchar(max)
不能存储14677
字节信息?当文件说它可以存储多达2GB
数据时