これらの 2 つのストアド プロシージャを 1 つに結合するのを手伝ってくれる人がいるかどうか疑問に思っています。
CREATE PROCEDURE [dbo].[spGetMsgID]
-- Add the parameters for the stored procedure here
@SendingF varchar(50),
@SendingA varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT Prefix, Counter
FROM
dbo.Part p
JOIN
dbo.MsgIDG g
ON
p.ID = g.PartID
WHERE
p.Facility = @SendingF
AND
p.Application = @SendingA
END
GO
CREATE PROCEDURE [dbo].[spUpdateMsgID]
-- Add the parameters for the stored procedure here
@SendingF varchar(50),
@SendingA varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
UPDATE dbo.MsgIDG
SET Counter = Counter + 1
FROM
dbo.Part p
JOIN
dbo.MsgIDG g
ON
p.ID = g.PartID
WHERE
p.Facility = @SendingF
AND
p.Application = @SendingA
END
GO
最初のストアド プロシージャは Prefix と Counter を返し、2 番目のストアド プロシージャは Counter をインクリメントします。私ができるようにしたいのは、最初のストアド プロシージャが少なくとも 1 つの結果セットを返すかどうかを確認し、そうであればプレフィックスとカウンターを返し、2 番目のストアド プロシージャを実行することです。
これら2つを1つに結合する方法はありますか?これは、2つの別々のストアド プロシージャを実行するよりも少し効率的です。最初は IF ... ELSE を使用して結果セットを確認し、2 つの列を返して更新することを考えていました。
前もって感謝します