[英]SQL Server : calling a stored procedure or not
I have a stored procedure that has one input parameter. 我有一个存储过程有一个输入参数。
However, in the stored procedure, there is a condition that needs user's input ( WHEN t.flag = 0
). 但是,在存储过程中,存在需要用户输入的条件(
WHEN t.flag = 0
)。
Is there a way not to call a new stored procedure but does the same job? 有没有办法不调用新的存储过程但执行相同的工作?
I do not want to add another input parameter in [dbo].[UpdateTheRate]
itself because I have other processes going on in this stored procedure. 我不想在
[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
Something along these lines? 沿着这些方向的东西?
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.