2013-05-16 47 views
0

我是新的存儲過程。存儲過程聲明錯誤

我在一個變量中取值列並用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 '[email protected]; 
END 
Else 
Begin 
select @amt 
print 'Amount Smaller'[email protected] 
END 
END 
Go 

它顯示我的打印語句和@amt變量聲明錯誤。

請告訴我我在哪裏犯錯。

請幫幫我。

+0

請包括您獲得的完整錯誤消息。 –

回答

2

類型來變量名後:

DECLARE @amt float; 

您必須手動轉換爲字符串,並串連獲得打印上班:

print 'Amount greater ' + CONVERT(varchar(20),@amt); 

(如果你不這樣做的CONVERTCAST,則SQL Server將嘗試將字符串轉換爲float,並新增兩個一起)

還可能希望:

select @amt=amount from bill where Id='2425' 
+0

再次粘貼新代碼,報錯:Msg 156,Level 15,State 1,Procedure billRet,Line 5關鍵字'select'附近的語法錯誤。 – Freelancer

+1

@Freelancer - 請停止編輯您的問題,這樣的答案不再有意義 - 我試着回滾,但這只是部分成功。我已經添加了另一個可能的修復程序。如果您想要現在顯示您的代碼,請在問題底部將其作爲單獨的代碼示例添加,並將其明確標記爲「這是迄今爲止答案已獲得的位置」或類似內容。 –

+0

真的很抱歉。從下次會記得。問題已被您的答案解決。謝謝。 – Freelancer

1

試試這個,

SET @amt = (select amount from bill where Id='2425') 

而這,

print 'Amount greater ' + CAST(@amt AS VARCHAR(50)); 
+0

再次粘貼新代碼,出現錯誤:消息156,級別15,狀態1,過程billRet,行5 關鍵字'select'附近的語法不正確。 – Freelancer