当前位置: 代码迷 >> Sql Server >> quotename的使用有关问题
  详细解决方案

quotename的使用有关问题

热度:41   发布时间:2016-04-27 12:59:21.0
quotename的使用问题
SQL code
create table #tb(FID varchar(10) ,FName varchar(8000))insert into #tb values('A','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB')insert into #tb values('B','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAA+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1')--查询ADeclare @a  varchar(max)set @a=''select @a  [email protected]+' when FName='+quotename(isnull(FName,0),'''')+' then '+isnull(FName,0)  from #tb where FID='A'select @a--查询BDeclare @a  varchar(max)set @a=''select @a  [email protected]+' when FName='+quotename(isnull(FName,0),'''')+' then '+isnull(FName,0)  from #tb where FID='B'select @a


在实际运用中要用到quotename,可是出现类似上面的情况,
查询A有结果,查询B返回null
请问为什么?

------解决方案--------------------
SQL code
------长度太长了。
------解决方案--------------------
SQL code
quotename 返回值类型是nvarchar(258)也就是最多129个字符,你的B的长度肯定不止
------解决方案--------------------
探讨
有解决方法不?
  相关解决方案