SQLSERVER变量超长怎么办? declare @s nVarchar(max)set @s='……'execute sp_executesql @s@s的长度大概是9000,已经定义为 nVarchar(max)了,但是实际的结果还是被截取为4000了.有什么解决办法吗?sqlserver变量长度 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那如果我执行的是一句完整的SQL呢,比如 insert into table1 (column1,column2……)select column1,column2…… from table2如果insert 和select 拆到2个变量里,那最后怎么去execute啊 试了一下set @s1='insert into table1 (column1,column2……)'set @s2='select column1,column2…… from table2'set @s=@s1+@s2再去执行@s居然就不超长了,实在是奇怪 Don't use variable, try this, exec('[TSQL Code]') 看了我很久才发现你问的是nvarchar(max)里面的max,我还以为是max()呢。下面是联机丛书的解释:nvarchar [ ( n | max ) ]可变长度 Unicode 字符数据。n 值在 1 到 4,000 之间(含)。max 指示最大存储大小为 2^31-1 字节。存储大小是所输入字符个数的两倍 + 2 个字节。所输入数据的长度可以为 0 个字符。nvarchar 的 ISO 同义词为 national char varying 和 national character varying。注意两个地方:字符和字节。nvarchar(max)的存储可以是2G,这是容量,而不是长度。 二进制可能会达到,但是没试过,CLR类型也可能会达到 我也想到二进制了,不过二进制不能存储在varchar类型中啊,而且已经有了varbinary类型了啊,难道如果想存储2G的数据还是要用回text吗? 那为什么max类型的字符拼接的话就可以存储超过8000的长度了呢~ 这个储存过程有点慢,如何修改 错在哪? sqlserver 占用内存太高怎么解决? 索引优化问题 excel导入sql 在SQL游标中列名无效 如果把一个表中的数据误删除,有什么办法将此表中的数据恢复? 哪位高手帮忙解决一下 用sql server + ado/ado.net做的应用程序,怎样实现表读取一部分时,停止读取,就象查询分析器一样 小白安装8.0.11压缩包MySQL问题 求一条查询语句 问一条查询语句
那如果我执行的是一句完整的SQL呢,比如 insert into table1 (column1,column2……)
select column1,column2…… from table2如果insert 和select 拆到2个变量里,那最后怎么去execute啊
试了一下
set @s1='insert into table1 (column1,column2……)'
set @s2='select column1,column2…… from table2'
set @s=@s1+@s2
再去执行@s居然就不超长了,实在是奇怪
下面是联机丛书的解释:nvarchar [ ( n | max ) ]
可变长度 Unicode 字符数据。n 值在 1 到 4,000 之间(含)。max 指示最大存储大小为 2^31-1 字节。存储大小是所输入字符个数的两倍 + 2 个字节。所输入数据的长度可以为 0 个字符。nvarchar 的 ISO 同义词为 national char varying 和 national character varying。
注意两个地方:字符和字节。nvarchar(max)的存储可以是2G,这是容量,而不是长度。