日期:2014-05-18  浏览次数:20580 次

我定义@SQL nvarchar(4000),无论怎么set @Sql内容,@Sql的长度始终不超过127.急啊!!在线等待.
在存储过程中
   
  delcare @SQL Varchar(4000);
  Set @SQL = 'Select '+@Condition; --condition长度不超过300
  EXEC sp_executesql @SQL

我单步跟踪. @SQL的长度总是127,自动给我把剩下的内容截断了.

------解决方案--------------------
declare!!
varchar 改为 nvarchar
SQL code
 declare @Condition nvarchar(300)
 declare @SQL nvarchar(4000); 
 Set @SQL =  'Select  '+@Condition;  --condition长度不超过300
 print len(@SQL) 
 EXEC sp_executesql @SQL

------解决方案--------------------
笔误吧,如果是delcare,根本不会执行批,何来单步跟踪?
------解决方案--------------------

--是显示问题,实际数据没有问题。

--如果你的SQL语句能正常执行,更能说明是这个问题。

/*

-->打开查询分析器
-->工具菜单
-->选项
-->选择“结果”选项卡,设置“每列最多字符数”,假设设置为40

如下:


*/

declare @sql varchar(8000)


set @sql = '1234567890-1-1234567890-2-1234567890-3-1234567890-4-1234567890'

--这里只会显示前40格字符
select @sql

--但print会打印出所有字符
print @sql