首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

varchar 相加 变空解决方法

2012-04-25 
varchar 相加 变空DECLARE @Sql NVARCHAR(max) DECLARE @aNVARCHAR(2000) DECLARE @b NVARCHAR(2000)set @

varchar 相加 变空
DECLARE @Sql NVARCHAR(max) DECLARE @a NVARCHAR(2000) DECLARE @b NVARCHAR(2000)

set @sql=@a+'...'+@b.....
一段sql相加 我print(@sql)出来 直接是空 如果我去掉一段拼接字段 则能正常输出 请问 为什么

付原sql

SQL code
   SET @Sql = 'SELECT TOP ' + STR(@PageSize) + ' ' + @FieldList + ' FROM ('                                        + 'SELECT TOP ' + STR(@PageSize) + ' '                                        + @FieldList + ' FROM '                                       + @TableName + @new_where2 + @order + ' < '                                       + '(SELECT MIN(' + @order + ') FROM (SELECT TOP '                                       + STR(@TotalCount-@PageSize*@PageIndex) + ' ' + @order                                        + ' FROM ' + @TableName                                       + @new_where1 + @new_order2 +' ) AS TMP) '+ @new_order2                                        + ' ) AS TMP ' + @new_order1                        print(@Sql)


[解决办法]
null加上任何值还是null
[解决办法]
那你检查下你去掉的那段拼接是不是null
[解决办法]
你肯定某些变量没有设置初始化值,所以默认会是Null, 拼接字段的结果当然为Null, SET @Sql =之前先把未赋值的变量Set一下,比如Set @new_where1 = ''
[解决办法]
变量没有设置初始化值,null加上任何值为null,检查并给各个变量初值

热点排行
Bad Request.