0

我正在使用执行 Sql 任务来更新时间维度我正在使用此代码

declare @i int=isnull((select max(id) from DIM_DATE)+1,1)
declare @Date Date=isnull((select [date] from dim_date where ID=@i-1),(SELECT DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) , 0))) 
declare @Count int=((isnull((select max(id) from DIM_DATE)+1,0)) )+(select day(eomonth((select DATEADD(day,1,@Date)))))
if((select count(*) from DIM_DATE)=0)
begin
insert into DIM_DATE values( @i,@Date,(select year(@Date)) ,(select datepart(Quarter,@Date)) ,(select Month(@Date)),(select format( @Date,'MMMM')),(select day(@Date)),(select datepart(weekday,@Date)),(SELECT DATENAME(dw,@Date)),
(select year(@Date)),(select datepart(Quarter,(@Date))))
End
while(@i<@Count)
begin
insert into DIM_DATE values( @i ,(select dateadd(day,1,@Date)),(select year((select DATEADD(day,1,@Date))))
,(select datepart(Quarter,(select DATEADD(day,1,@Date)))),
(select Month(DATEADD(day,1,@Date))) ,(select format(dateadd(day,1, @Date),'MMMM')),
(select day(DATEADD(day,1,@Date))) ,(select datepart(weekday,@Date)) ,(SELECT DATENAME(dw,@Date)) ,
(select year((select DATEADD(day,1,@Date)))),(select datepart(Quarter,(select DATEADD(day,1,@Date)))))
set @Date=(select dateadd(day,1,@Date))
set @i+=1
End

当我在 sql server 上尝试它时它可以工作,但在 SSIS 中它只插入了第一行。

这是包控制流程的屏幕截图:

在此处输入图像描述

4

0 回答 0