Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 存储过程声明错误_Sql_Sql Server 2005_Stored Procedures - Fatal编程技术网

Sql 存储过程声明错误

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

我不熟悉存储过程

我在一个变量中获取列的值,并用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 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-请停止编辑您的问题,这样答案就没有意义了-我尝试回滚,但仅部分成功。我已经添加了另一个可能需要的修复。如果你想显示你的代码现在的样子,请在问题的底部添加一个单独的代码示例,并清楚地标记为“这是迄今为止我得到的答案”或类似。真的很抱歉。下次我会记得的。你的回答解决了问题。非常感谢。