[英]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.