读书人

quotename的使用有关问题

发布时间: 2012-05-08 22:09:41 作者: rapoo

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  =@a+' 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  =@a+' 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的长度肯定不止
[解决办法]
探讨
有解决方法不?

读书人网 >SQL Server

热点推荐