我的查询:
select
*
from
meet_cert_credit
where
conf_number = '1132'
and type_of_professional = 'Certified Hazardous Materials Managers'
我的存储过程:
ALTER PROCEDURE [dbo].[sp_check_credit_info]
@cn varchar = NULL,
@top varchar = NULL
AS
BEGIN
SET NOCOUNT ON;
select
*
from
meet_cert_credit
where
Conf_number = @cn
and type_of_professional = @top
END
调用我的存储过程:
exec sp_check_credit_info '1132', 'Certified Hazardous Materials Managers'
运行查询时,它会返回结果。运行存储过程时,我什么都没得到。
我疯了吗?
答案 0 :(得分:9)
您需要为varchar
存储过程参数指定长度。
e.g。使用@cn varchar(30)
而不是@cn varchar
目前传入的所有内容都被截断为1个字符,因此您实际上正在进行以下搜索。
select
*
from
meet_cert_credit
where
Conf_number = '1'
and type_of_professional = 'C'
因此没有结果。