带参数的存储过程!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/18 10:52:52
我写了个语句:
create proc userCheck
@name varchar(100),
@pwd varchar(100)
as
begin
select count(*) from users where name='@name' and password='@pwd'
end
但是在执行时:
exec userCheck 'aaa','aaa'
总是返回:0 我数据库中有个用户 aaa,aaa
但是,用这个语句:
select count(*) from users where name='aaa' and password='aaa'
却返回的是1
谁能让 第一个方法 返回的是1,我错在什么地方??????

你已经将 @name,@pwd 定义为varchar(100)了,所以在
select count(*) from users where name='@name' and password='@pwd'
这里的'@name'和'@pwd'就不用加引号了,否则你执行
exec userCheck 'aaa','aaa' 时,你的查询语句实际是
select count(*) from users where name= ''aaa'' and password= ''aaa'',
这样肯定没有这个数据了,返回是0

select count(*) from users where name='@name' and password='@pwd'
改为
select count(*) from users where name=@name and password=@pwd

不要加引号

@name 和@pwd不加单引号试试