此存储过程是否正确

来源:百度知道 编辑:UC知道 时间:2024/04/27 23:28:53
ALTER PROCEDURE autoResName
(
@prefixText varchar(50),
@count int
)

AS
declare @sql varchar(200)
set @sql='select top '+cast(@count as varchar)+' * from restaurant where ResName like %'+@prefixText+'%'
EXEC (@sql)
RETURN
好像也是错的

我执行后是:
服务器: 消息 207,级别 16,状态 3,行 1
列名 '%f%' 无效。
存储过程: 0595eat.dbo.autoResName
返回代码 = 0

alter PROCEDURE autoResName
(
@prefixText varchar(50),
@count int
)

AS
declare @sql varchar(200)
set @sql='select top '+cast(@count as varchar)+' * from restaurant where ResName like ''%'+@prefixText+'%'''
EXEC (@sql)
RETURN

正确的应该是这样

where ResName like %'+@prefixText+'%'

改成
where ResName like ''%'+@prefixText+'%'''

我这边没有问题呀,应该是其他的地方出错了