0
我有以下情況:存儲過程中的不同數據庫
存儲過程中的輸入參數是數據庫名稱。所以,取決於這個參數,查詢是在不同的數據庫上執行的。每個查詢都是一樣的,下面只是一個簡單的例子。
如何編寫存儲過程(使用動態sql除外)以避免IF ... ELSE語句,如代碼如下。
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
我不認爲查詢字符串有除動態SQL另一種方式和你在這裏做了什麼。 – liebs19