Sql 存储过程声明错误
我不熟悉存储过程 我在一个变量中获取列的值,并用If块检查它 我的代码如下:Sql 存储过程声明错误,sql,sql-server-2005,stored-procedures,Sql,Sql Server 2005,Stored Procedures,我不熟悉存储过程 我在一个变量中获取列的值,并用If块检查它 我的代码如下: create proc billRet as BEGIN DECLARE @amt float set @amt=select amount from bill where Id='2425' If (@amt>1100.50 ) Begin select @amt print 'Amount greater '+@amt; END Else Begin select @amt print 'Amount
create proc billRet
as
BEGIN
DECLARE @amt float
set @amt=select amount from bill where Id='2425'
If (@amt>1100.50 )
Begin
select @amt
print 'Amount greater '+@amt;
END
Else
Begin
select @amt
print 'Amount Smaller'+@amt
END
END
Go
它在打印语句和@amt变量声明时向我显示错误
请告诉我哪里出错了
请帮帮我。试试这个
SET @amt = (select amount from bill where Id='2425')
而这个,
print 'Amount greater ' + CAST(@amt AS VARCHAR(50));
试试这个
SET @amt = (select amount from bill where Id='2425')
而这个,
print 'Amount greater ' + CAST(@amt AS VARCHAR(50));
类型位于变量名称之后:
DECLARE @amt float;
您必须手动转换为字符串并连接才能进行打印:
print 'Amount greater ' + CONVERT(varchar(20),@amt);
(如果不执行转换
或转换
,SQL Server将尝试将字符串转换为并将两者相加)
也可能需要:
select @amt=amount from bill where Id='2425'
类型位于变量名称之后:
DECLARE @amt float;
您必须手动转换为字符串并连接才能进行打印:
print 'Amount greater ' + CONVERT(varchar(20),@amt);
(如果不执行转换
或转换
,SQL Server将尝试将字符串转换为并将两者相加)
也可能需要:
select @amt=amount from bill where Id='2425'
请包括您收到的完整错误消息。请包括您收到的完整错误消息。再次粘贴新代码,给出错误:Msg 156,级别15,状态1,过程billRet,第5行关键字“select”附近语法错误。再次粘贴新代码,给出错误:Msg 156,级别15,状态1,过程billRet,第5行关键字“选择”附近的语法不正确。再次粘贴新代码,给出错误:Msg 156,级别15,状态1,过程billRet,第5行关键字“选择”附近的语法不正确。@Freeler-请停止编辑您的问题,这样答案就不再有意义了-我尝试回滚,但仅部分成功。我已经添加了另一个可能需要的修复。如果你想显示你的代码现在的样子,请在问题的底部添加一个单独的代码示例,并清楚地标记为“这是迄今为止我得到的答案”或类似。真的很抱歉。下次我会记得的。你的回答解决了问题。谢谢。再次粘贴新代码,给出错误:Msg 156,级别15,状态1,过程billRet,第5行关键字“选择”附近语法不正确。@Freeler-请停止编辑您的问题,这样答案就没有意义了-我尝试回滚,但仅部分成功。我已经添加了另一个可能需要的修复。如果你想显示你的代码现在的样子,请在问题的底部添加一个单独的代码示例,并清楚地标记为“这是迄今为止我得到的答案”或类似。真的很抱歉。下次我会记得的。你的回答解决了问题。非常感谢。