我正在做一个酒店项目,我需要检查房间的可用性。这里的逻辑是首先需要检查房间是否可用,然后我需要检查客户输入的结帐日期是否等于任何客户的结帐日期:
ALTER PROCEDURE [dbo].[customerdetails] (@CheckIn DATE, ...)
AS
BEGIN
BEGIN TRY
IF ( (SELECT Available
FROM rooms
WHERE roomtype = @RoomType) > 0 )
BEGIN
INSERT INTO Customerdetail
VALUES (@CheckIn, ...)
END
ELSE IF(SELECT *
FROM Customerdetail
WHERE RoomType = @RoomType
AND CheckOut = @CheckOut)
BEGIN
INSERT INTO Customerdetail
VALUES (@CheckIn, ...)
END
END TRY
BEGIN CATCH
DECLARE @ErrMessage NVARCHAR(max)
SET @ErrMessage=ERROR_MESSAGE()
RAISERROR (@ErrMessage,16,1)
END CATCH
END
但我收到一个错误:
消息 4145,级别 15,状态 1
在“开始”附近的预期条件的上下文中指定的非布尔类型的表达式。