存储过程: CREATE PROCEDURE SearchByName @Name char (30) AS SELECT Name FROM Class WHERE Name LIKE '%'+@Name+'%' GO 为什么执行的时候不能实现模糊查询呢 EXEC SearchByName '1' 数据库中有不止一个含有1的记录,但是一个都查询不出来,是我的存储结构有问题么
我知道是什么原因了:你定义的@name 是char(30),如果@name小于30个字符,就会用空格来填充的,这些空格也是有意义的,所以导致了你查不出结果.你可以这样把char(30)改成varchar(30)
CREATE PROCEDURE SearchByName
@Name varchar (30)
AS
SELECT * FROM customers WHERE companyname LIKE '%'+@Name+'%'
GO