设置后tsql变量为null

时间:2015-07-03 09:28:37

标签: tsql debugging var

我试图生成一个我需要构建一个更大的查询的子集,但似乎我已经将该变量设置为null(或者根本没有设置它)I&# 39;一直试图弄清楚我哪里出错了,但印刷品陈述似乎在这里不起作用。 (因此我怀疑它们是NULL)

DECLARE @selectCols nvarchar(4000)
        DECLARE @cols nvarchar(4000)
        SET @selectCols =
        'SELECT  '+@cols+' = isnull('+@cols+' + '','', '') + ''['' + CONVERT(nvarchar, TimeIndex) + '']'' 
        from (select top 6 timeindex from (select distinct top 6 TimeIndex from '+@db_id+'.[webhistory].[Prediction_FillpercentageDays]
        order by TimeIndex desc)as a1 order by TimeIndex asc) as a2'
        EXECUTE (@selectCols);

    SELECT CAST('<root><![CDATA[' + @selectCols + ']]></root>' AS XML)

我的问题是:我错过了什么?我觉得我错过了一些非常简单的东西。 (是@db_id已设置)

1 个答案:

答案 0 :(得分:2)

在tsql中,null是未定义的,任何+ null都是null。

您尚未为@cols分配值,因此@selectCols返回null。为@cols分配一个值并尝试。

DECLARE @cols nvarchar(4000) = 'Assign your value here'