DECLARE @SQL NVARCHAR(4000) DECLARE @INTPAGECOUNT AS INT
SELECT @INTPAGECOUNT=25SELECT @SQL='SELECT 100 /'+@INTPAGECOUNT
EXEC @SQL报错了:
服务器: 消息 245,级别 16,状态 1,行 6
将 varchar 值 'SELECT 100 /' 转换为数据类型为 int 的列时发生语法错误。

解决方案 »

  1.   

    DECLARE @SQL NVARCHAR(4000) DECLARE @INTPAGECOUNT AS INT
    SELECT @INTPAGECOUNT=25SELECT @SQL='SELECT 100 /'+rtrim(@INTPAGECOUNT)
    EXEC(@SQL)
      

  2.   

    DECLARE @SQL NVARCHAR(4000) DECLARE @INTPAGECOUNT AS INT
    SELECT @INTPAGECOUNT=25SELECT @SQL='SELECT 100 /'+cast(@INTPAGECOUNT as varchar(20))
    EXEC (@SQL)
      

  3.   

    DECLARE @SQL NVARCHAR(4000) DECLARE @INTPAGECOUNT AS INT
    SELECT @INTPAGECOUNT=25SELECT @SQL='SELECT 100 '+ '/'+CONVERT(CHAR(10),@INTPAGECOUNT)
    --PRINT @SQL
    EXEC (@SQL)/*-----------
    4(1 行受影响)
    */