0

次の状況があります。

ストアド プロシージャの入力パラメータはデータベース名です。したがって、このパラメーターに依存して、クエリは別のデータベースで実行されます。すべてのクエリは同じです。以下は簡単な例です。

以下のコードのように IF...ELSE ステートメントを回避するために、ストアド プロシージャ (動的 SQL を使用する場合を除く) を記述する方法。

ALTER PROCEDURE [dbo].[usp_Item_GetAll]
(
    @DBName nvarchar(255) = ''  
)
AS
BEGIN

IF @DBName = 'ItemUsers'
BEGIN
    SELECT
    *
    FROM ItemUsers.dbo.vW_DAM_ItemWithAttribute
END

ELSE IF @DBName = 'CollectionUsers'
BEGIN
    SELECT
        *
    FROM CollectionUsers.dbo.vW_DAM_ItemWithAttribute
END
4

1 に答える 1