sql – 编写存储过程If / Else创建错误消息

我试图创建一个带有if / else语句的存储过程,如果在存储过程中输入了错误的CustomerID,将导致Text消息.就像现在一样,当CustomeID中没有输入任何内容时,它只会给我一条打印行.

Create proc spCustOrder
@CustomerID VarChar(10),
@StartDate SmallDateTime = null,
@EndDate SmallDateTime =  NUll
as 
Begin
iF @CustomerID > 0

Select Distinct OrderID, OrderDate
from Customer C  join CustOrder CO on CO.CustomerID = C.CustomerID
where C.CustomerID  = @CustomerID and 
OrderDate >= Isnull(@startDate,'1900-01-01') and 
OrderDate <= IsNull(@EndDate, getDate( ))
Else 
Print 'Please enter a CustomerID'
end

基本上我不清楚的是我应该使用什么而不是“@CustomerID> 0”中的“0”来使程序功能.我尝试使用CustomerID或C.和CO.CustomerID,但它说使用该命令时出错.

最佳答案
尝试

IF Exists(
    SELECT DISTINCT OrderID, ...
    )
ELSE
    PRINT ...
END

此外,您通常希望从存储过程返回ID或true / false值,并在调用proc的例程中执行任何打印或IO;避免在proc本身做IO.

转载注明原文:sql – 编写存储过程If / Else创建错误消息 - 代码日志