可能有前导空格
这样声明变量:declare @sql_str varchar(1024)

解决方案 »

  1.   


    declare @sql_str nvarchar(1024)
    select @sql_str= 'SELECT dbo.tQY.区域 FROM dbo.tQY 'select @sql_str=@sql_str + ' INNER JOIN 省略'--?引号print @sql_str
    试过没有问题啊
      

  2.   

    有问题,因为nchar是固定长度类型,所以
    select @sql_str= 'SELECT dbo.tQY.区域 FROM dbo.tQY '
    一句会在 @sql_str 尾部用空格把其填满,所以
    select @sql_str=@sql_str + ' INNER JOIN 省略'
    实际上是加不进东西的,而换成
    select @sql_str= ' INNER JOIN 省略'+ @sql_str 
    因为@sql_str尾部是空格的关系,所以正常修改方法一种是用可变长度类型
    declare @sql_str nvarchar(1024)
    select @sql_str= 'SELECT dbo.tQY.区域 FROM dbo.tQY 'select @sql_str=@sql_str + ' INNER JOIN 省略'--?引号print @sql_str另一种是用:
    declare @sql_str nchar(1024)
    select @sql_str= 'SELECT dbo.tQY.区域 FROM dbo.tQY 'select @sql_str=left(@sql_str,len(@sql_str)) + ' INNER JOIN 省略'--?引号print @sql_str
      

  3.   

    zjcxc(邹建) 的解释是对的。问题就出在这里了。