读书人

新手有关问题!

发布时间: 2012-01-23 21:57:28 作者: rapoo

新手问题!!!
存储过程:
CREATE PROCEDURE proc_BookSearch
@sBClassID varchar(2),@sSearchValue varchar(100),@sSearchKey varchar(10)
AS
declare @sql varchar(200)
set @sql = 'select a.*,b.Pub_Name from T_Books a,T_Publishers b
where a.Pub_ID=b.Pub_ID and a.BClass_ID= '+ @sBClassID+ ' and '+ @sSearchKey + ' like ' ' '+ @sSearchValue +
' ' ' order by a.Book_AddDate desc '
exec (@sql)
GO
调用:
exec proc_BookSearch '01 ', 'Book_Name ', '%c% '
错误:
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: 'c ' 附近有语法错误。


[解决办法]
try

alter PROCEDURE proc_BookSearch
@sBClassID varchar(2),@sSearchValue varchar(100),@sSearchKey varchar(10)
AS
declare @sql varchar(200)
set @sql = 'select a.*,b.Pub_Name from T_Books a,T_Publishers b
where a.Pub_ID=b.Pub_ID and a.BClass_ID= '+ @sBClassID+ ' and '+ @sSearchKey + ' like ' '% '+ @sSearchValue +
'% ' ' order by a.Book_AddDate desc '
exec (@sql)
GO

--调用:
exec proc_BookSearch '01 ', 'Book_Name ', 'c '
[解决办法]
exec proc_BookSearch '01 ', 'Book_Name ', '%c% '
改成:
exec proc_BookSearch '01 ', '%c% ', 'Book_Name '

读书人网 >SQL Server

热点推荐