日期:2014-05-17  浏览次数:20506 次

where后面加EXEC('')
我目的很简单,就是写了一个存储过程,

CREATE Procedure [dbo].[P_Report_System]
(
 @where nvarchar(500)
)
select 
。。。。。。。
from 表
where 1=1 exec(@where)

EXEC P_Report_System ' and ecoa.codename = ''C'' '




(8 行受影响)
消息 156,级别 15,状态 1,第 1 行
关键字 'and' 附近有语法错误。

这样总是不行,求了解的大哥大姐们帮帮我,谢谢啊!


------解决方案--------------------
改成这样试试:


CREATE Procedure [dbo].[P_Report_System]
(
 @where nvarchar(500)
)

declare @sql nvarchar(4000)

set @sql = 'select * from 表 where 1=1 '+@where

exec(@sql)
go

EXEC P_Report_System ' and ecoa.codename = ''C'' '


------解决方案--------------------
create Procedure [dbo].[P_Report_System]
(
 @where nvarchar(500)
)
as
DECLARE @sql nvarchar(max)
SET @sql='select *
from sys.sysprocesses
where 1=1 '+@where
EXEC(@sql)
 
EXEC P_Report_System ' and ecoa.codename = ''C'' '