日期:2014-05-19  浏览次数:20435 次

请教,简单的存储过程运行出错
CREATE   proc   test
@newsnum   varchar(20),
@indextype   varchar(20)
as
declare   @sql   varchar(100)
set   @sql   =   'select   top   '   +   @newsnum   +   '   *   from   news   where   newstype   =     ( '   +   @indextype   +   ')   and   tag=checked   order   by   id   desc '
EXEC(@sql)
GO

检查语法的时候,提示语法检查成功,但是运行的时候总是提示

服务器:   消息   207,级别   16,状态   3,行   1
列名   '政策法规 '   无效。
服务器:   消息   207,级别   16,状态   1,行   1
列名   'checked '   无效。

我是这样执行的:Exec   test   '10 ', '政策法规 '



------解决方案--------------------
set @sql = 'select top ' + @newsnum + ' * from news where newstype = ( ' ' ' + @indextype + ' ' ') and tag= ' 'checked ' ' order by id desc '