读书人

where后头加EXEC(#x27;#x27;)

发布时间: 2013-12-19 00:33:34 作者: rapoo

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'' '

读书人网 >SQL Server

热点推荐