簡體   English   中英

SQL Server:是否調用存儲過程

[英]SQL Server : calling a stored procedure or not

我有一個存儲過程有一個輸入參數。

但是,在存儲過程中,存在需要用戶輸入的條件( WHEN t.flag = 0 )。

有沒有辦法不調用新的存儲過程但執行相同的工作?

我不想在[dbo].[UpdateTheRate]本身中添加另一個輸入參數,因為我在此存儲過程中還有其他進程。

ALTER PROCEDURE [dbo].[UpdateTheRate] (@PID int)
AS
    UPDATE t
    SET t.rate = 
            CASE 
               WHEN t.flag = 1 THEN (select UnitRate 
                                     from RateTable 
                                     where state ='IL' and Term='20')
               WHEN t.flag = 0 THEN EXEC [dbo.rate_procedure]  --(USER enter rate)
    FROM TblChargeTable t
    WHERE t.PID = @PID

沿着這些方向的東西?

ALTER PROCEDURE [dbo].[UpdateTheRate] (@PID int)
AS

-- defer executing the procedure unless necessary
IF EXISTS (SELECT 1 FROM TblChargeTable WHERE flag = 0 and PID = @PID)
BEGIN
   EXEC dbo.rate_procedure; -- get @user_rate via return code or out parameters perhaps
END

UPDATE t
SET    t.rate = 
       CASE WHEN t.flag = 1 THEN (select UnitRate from RateTable where state ='IL' and Term='20')
            WHEN t.flag = 0 THEN @user_rate END -- retrieved above
FROM   TblChargeTable t
WHERE  t.PID = @PID;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM