我可能试图在处理所有困难的事情后做一件简单的事情,但似乎这让我很头疼。我想连接文本到变量@strXml这是一个nvarchar变量来构建Xml元素,但@strXml返回null。请帮忙。我在下面发布我的代码。nvarchar串联问题
DECLARE @strXml nvarchar(max) = ''
SET @strXml = '<PromoName>' + (Select PromoName From #Temp) + '</PromoName>'
SET @strXml = @strXml + '<PromoDesc>' + (Select PromoDesc From #Temp) + '</PromoDesc>'
SET @strXml = @strXml + '<PromoCode>' + (Select PromoCode From #Temp) + '</PromoCode>'
SET @strXml = @strXml + '<BeginDate>' + (Select Convert(nvarchar, BeginDate) From #Temp) + '</BeginDate>'
SET @strXml = @strXml + '<EndDate>' + (Select Convert(nvarchar, EndDate) From #Temp) + '</EndDate>'
SET @strXml = @strXml + '<RawHtml>' + (Select RawHtml From #Temp) + '</RawHtml>'
SET @strXml = @strXml + '<FocusPromoInd>' + Convert(nvarchar, 0) + '</FocusPromoInd>'
SET @strXml = @strXml + '<ParentPromoCode>' + (Select ParentPromoCode From #Temp) + '</ParentPromoCode>'
SET @strXml = @strXml + '<ActiveInd>' + (Select Case When ActiveInd=1 Then '1' Else '0' End From #Temp) + '</ActiveInd>'
SET @strXml = @strXml + '<AreaID>' + (Select Convert(nvarchar, AreaID) From #Temp) + '</AreaID>'
SET @strXml = '<PromoData><Promotion>' + @strXml + '</Promotion></PromoData>'
Select @strXml as strXML
而当我运行最后一个查询时,它返回null。即使在调试模式下,我也无法看到每行上的值更新为@strXml。请帮忙!谢谢。
您是否将任何值连接为NULL?我的记忆似乎认为在SQL中NULL +任何东西总是NULL。有些格式可以很好地使这更容易阅读。 – btlog 2010-08-03 18:06:21
那么,如果SET的全都是SELECT的话会不会更好? – Fosco 2010-08-03 18:08:06