print @sql
EXEC(@sql)
先打印出来,分析。

解决方案 »

  1.   

    declare @aa varchar(8000)
    DECLARE @sql varchar(8000)
    set @aa='#8613*TEST*01898225#8613*TEST*01898222200309151459210009#8613*TEST*01898222200309151459210010#'
    SELECT @sql = 'SELECT ''' + REPLACE(REPLACE(SUBSTRING(@aa, 2, LEN(@aa) - 2), '#', ''' UNION ALL SELECT '''), '*', ''', ''')  + ''''
    EXEC(@sql)
      

  2.   

    to yujohny(踏网无痕):
    SUBSTRING(@aa, 2, LEN(@aa) - 2), '#', ''' UNION ALL SELECT '''), '*', ''', ''') 
    从'#'后面的是什么意思
      

  3.   

    用print(@sql)或select(@sql)把语句打印出来分析一下。如果是存储过程可以用debug调试。