SQL Serverでは、テーブル内の列の値に基づいて特定のストアドプロシージャ/インライン選択ステートメントを呼び出す方法はありますか?SQL Serverの行の値に基づいて特定のストアドプロシージャ/ selectステートメントを呼び出す
など。表#IdNumbers
(下)の各行について、Number
列の値をチェックします。値が1の場合は最初のストアド・プロシージャをコールし、値が2の場合は2番目のプロシージャをコールします。
私は以下のコードと似たようなものを実現しようとしています(しかし、擬似コードはありません)。
CREATE PROCEDURE [CallSpecificStoredProcedure]
(
@Name VARCHAR(50)
,@StartDate DATETIME
,@EndDate DATETIME
)
AS
BEGIN
CREATE TABLE #IdNumbers
(
Id UNIQUEIDENTIFIER,
Number INT
)
INSERT INTO #IdNumbers
exec GetIdNumbers @StartDate, @EndDate
--for each row in #IdNumbers
--If Number = 1
exec StoredProcedure1(Id, Number, @Name, @StartDate, @EndDate)
--else If Number = 2
exec StoredProcedure2(Id, Number, @Name, @StartDate, @EndDate)
--else If Number = 3
exec StoredProcedure3(Id, Number, @Name, @StartDate, @EndDate)
END
グレート。あなたは少し速かったです。 –
@teovankot私はあなたのことを読んでいます。アイデアは問題ありませんが、ほとんどの質問から継承されたいくつかのバグがあります –
私は自分のソリューションにカーソルを使用する必要があると感じました。あなたはこれを達成するための代替方法を知っていますか?私はカーソルの周りに多くの嫌悪感を見たことがありますが、私は個人的にそれらが良いか悪いかを知ることはできません。なぜならそれは効率とは何かを前提としているからです。 – axel