2
在SQL Server中,有沒有辦法基於表中列的值調用特定的存儲過程/行內選擇語句?根據SQL Server中行的值調用特定的存儲過程/ select語句
E.g.對於表#IdNumbers
(下面)中的每一行,檢查Number
列的值 - 如果值爲1,則調用第一個存儲過程,如果值爲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