SQL 存储过程问题? 帮我看看...

来源:百度知道 编辑:UC知道 时间:2024/05/29 17:51:52
--创建存钱的存储过程.
if exists(select * from sysobjects where name='proc_takeMoney')
drop proc proc_takeMoney
GO
create proc proc_takeMoney
@card char(19), --卡号
@money money , --交易金额
@type char(8), --交易类型
@pass varchar(20)='' --密码
AS
print '--->>>交易正在进行中,-->>>请稍候...'
declare @passWord varchar(20),@cardId char(19)
select @password=pass from dbo.cardInfo where pass=@pass and @card
if @type='支取'
begin
if(@pass=@password)
begin
print '密码正确'
end
else
begin
print '密码错误'
end
end
else
print '没有此类型'
GO

为什么总是报这样的错误啊...
消息 4145,级别 15,状态 1,过程 proc_takeMoney,第 10 行
在应使用条件的上下文(在 'if' 附近)中指定了非布尔类型的表达式。

帮我找下原因...谢谢了

你的这句话“select @password=pass from dbo.cardInfo where pass=@pass and @card ”没说明@card的条件啊,@card后面直接跟的“IF”条件你没写完,当然SQL辨别不了,就会说是IF的错啊,你把条件写全,再试试吧