[英]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.