2010-08-04 66 views
0

我有這個存儲過程,而得到EXCELL數據,然後更新狀態:if else在存儲過程中聲明?

ALTER PROCEDURE [dbo].[sp_AllocateSerial] 
@Limit int, 
@Part varchar (50), 
@Status varchar(50) 
AS 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
SET NOCOUNT ON; 

-- Insert statements for procedure here 

SELECT TOP (@LIMIT) PartNumber,SerialNumber,Batch,Location,PalletNumber,Status 
FROM dbo.FG_FILLIN where Status='FG-FRESH' and [email protected] ORDER BY PartNumber 

END 

現在:

如果我的序列號狀態被分配我想說明的是,串行已經是一個錯誤信息分配。

回答

2

嘗試這樣的事情我主要使用假值,所以你將不得不改變你的環境。

IF NOT EXISTS (SELECT SerialNumber WHERE SerialNumber = @SerialNumber AND Status = 'Allocated') 
BEGIN 
//Logic for if the serial number is not allocated 
END 
ELSE 
BEGIN 
//Logic for the serial number being in the allocated state 
END 
2
IF EXISTS (SELECT * FROM FG_FILLIN WHERE Status = 'Allocated' AND SerialNumber = @Serial) 
BEGIN 

    RAISERROR 
    (N'Serial number %s has already been allocated.', 
    10, -- Severity. 
    1, -- State. 
    @Serial) 

END 
0

你可能想使用的輸出參數,然後讓客戶端測試OT,而不是一個SQL異常