我试图(综合)在一个星型数据集市中填充一个空的时间维度表,之后它应该如下所示:

为此,我使用以下T代码:
/*
STEP 3
Populate DIM_TIJD table with date and its derrived values data
*/
USE Fuzzy_DM_Robin
--DECLARE DATE VARIABLES FOR DATE PERIOD
DECLARE @StartDate datetime = '01/01/1995'
DECLARE @EndDate datetime = '01/01/2026'
DECLARE @DateInProcess datetime
SET @DateInProcess = @StartDate
WHILE @DateInProcess < = @EndDate
BEGIN
SET NOCOUNT ON
--LOOP THROUGH INDIVIDUAL DATES DEFINED BY TIME PERIOD
INSERT INTO DIM_TIJD (
[DATUM_ID],
[DATUM],
[DAG_VD_WEEK],
[WEEKNR],
[MAAND],
[MAAND_OMSCHRIJVING],
[LAATSTE_DAG_MAAND],
[KWARTAAL],
[JAAR]
)
VALUES (
CAST ( @DateInProcess AS numeric (10) ),
@DateInProcess,
CONVERT(varchar(10), @DateInProcess, 110) + ', ' + DATENAME(WEEKDAY, @DateInProcess ),
DATEPART (wk, @DateInProcess),
MONTH( @DateInProcess),
CAST(YEAR(@DateInProcess) as varchar(4)) + ' - ' + DATENAME(MONTH, @DateInProcess ),
DATEPART (dd, EOMONTH ( @DateInProcess)),
DATENAME( QUARTER, @DateInProcess ),
YEAR(@DateInProcess))
END尽管如此,它不会装载。我收到的信息是:
电文1:
字符串或二进制数据将被截断。
和信息2:
执行SQL :执行查询"/*步骤3用日期填充DIM_TIJD表,它.“失败,但有以下错误:“语句已终止。”可能的失败原因:查询出现问题、"ResultSet“属性未正确设置、参数未正确设置或连接未正确建立。
我做错了什么?SSMS中没有显示代码有问题的衬里,我检查了所有varchar长度对于表和代码都是一样的。我尝试过摆弄结果集设置,但这只给了我另一条信息:
电文3:
执行SQL错误:为ResultSetType:"ResultSetType_SingleRow“返回的结果绑定数无效。
提前谢谢你!
发布于 2016-04-30 18:36:26
@DateInProcess变量需要作为循环的一部分进行增量。
尝试将其添加为循环的最后一行(结束前):
SET @DateInProcess = DATEADD(DAY, 1, @DateInProcess)https://stackoverflow.com/questions/36771576
复制相似问题