簡體   English   中英

循環執行月末日期的存儲過程

[英]Loop to execute a stored procedure for month end dates

我正在尋找一些有關循環的幫助,該loop允許我從 2016 年 1 月到 2021 年 1 月的每個月末多次execute存儲過程。我可以訪問一個calendar ,該日歷為我提供每個月末(如下所示)。 我需要像這樣execute每個存儲過程:- EXECUTE usp_something @asatdate

SELECT TOP 100.*
FROM dbo.Dim_Calendar
WHERE iscalendarmonthend = 1

我完全沒有使用Loops的經驗,並且一直被告知永遠不要使用它們,所以我有點擔心,所以會確保我會在本地完全測試它。

謝謝你。

只要您上面的查詢僅提取您希望通過存儲過程運行的月末日期,您就可以使用 cursor 循環它,如下所示。

DECLARE @asatdate DATETIME

DECLARE CURSOR_DB CURSOR FAST_FORWARD FOR
    SELECT MonthEndDate
    FROM dbo.Dim_Calendar
    WHERE iscalendarmonthend = 1
 
OPEN CURSOR_DB
FETCH NEXT FROM CURSOR_DB INTO @asatdate
WHILE @@FETCH_STATUS = 0
BEGIN

    EXECUTE usp_something @asatdate

    FETCH NEXT FROM CURSOR_DB INTO @asatdate

END
CLOSE CURSOR_DB
DEALLOCATE CURSOR_DB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM