我在存储过程中,定义了varchar(512)的字符串,但是怎么只能存储256个字符呢,是不是有什么地方需要设置下啊?
哪位知道啊,谢谢了!

解决方案 »

  1.   

    应该不回吧!  varchar   支持8000各字符
      

  2.   

    varchar(n)的n代表字节数而非字符数。
      

  3.   

    create  Proc QUERY_BY_ACCOUNT
    @szUserName  varchar(32),
    @nPage       int
    AS
    BEGIN 
    DECLARE @nRecordCount  int

    DECLARE @szSQL varchar(1024) SELECT @nRecordCount=Count(*) FROM QiPu WHERE UserName1=@szUserName OR UserName2=@szUserName IF @nPage<2
    BEGIN
    SELECT TOP 20 * FROM QiPu WHERE UserName1=@szUserName OR UserName2=@szUserName ORDER BY LogID
    RETURN @nRecordCount
    END SET @nPage=@nPage-1
    SET @nPage=@nPage*20
    SELECT @nPage 
    --SELECT TOP @nPage @nMaxQiPuID=Max(LogID) FROM QiPu WHERE UserName1=@szUserName OR UserName2=@szUserName 
    SET @szSQL='DECLARE @nMaxID int
     SELECT @nMaxID=Max(LogID) FROM (SELECT TOP '+LTRIM(STR(@nPage))+' LogID FROM QiPu WHERE UserName1='''+@szUserName+''''+' OR UserName2='''+@szUserName+''')A'+
    ' SELECT top 20 * FROM QiPu WHERE (UserName1='''+@szUserName+''' OR UserName2='''+@szUserName+''')'+'and (LogID>@nMaxID)aaa122222d' --EXEC (@szSQL)
    select @szSQL RETURN @nRecordCount
    END
      

  4.   

    樓主是指結果吧? 
    改下設置
    SQL Query Analyzer---Tools---Options---Results:
    修改Maximum characters per column: 256(默認)->1000(or 2000^_^)
      

  5.   

    LouisXIV(夜游神) 大哥說得對,不影響exec,只是看不到罷了
      

  6.   

    不過顯示出來,可以check你的SQL字串有沒有問題...