2014-07-15 122 views
0

我有一個存儲過程應該根據表中可用的數據生成XML文件。如果所有字段中都有數據,則它工作正常。但是,如果在一個或多個字段中沒有日期,則不會創建xml。它會返回null。我開始調試它,發現@ part1具有正確的值,part2具有正確的值,part3具有正確的值。一旦我連接它們,我發現part1現在是空的。我在這裏錯過了什麼?在SQL Server 2012中創建XML文件

select @part1 = '<Students>'; 

      @part2 ='<NumberOFCourse>'+isnull(convert(varchar,(select NumberOFCourse from Courses)), 0)+'</NumberOFCourse>' ; 
       select @part3 = '<NumberOFSemesterCredit>'+isnull(convert(varchar,(select NumberOFSemesterCredit from Courses)), 0)'</NumberOFSemesterCredit>' + 
       '</Students>'; 
       select @part1 += @part2 + @part3 

回答

1

您還沒有發佈你實際上使用的代碼,因爲裏面還有幾個錯別字,當這些固定它並不表明你描述,所以我不能告訴你爲什麼你的代碼不行爲爲你工作。

而不是使用字符串連接來建立XML,你可以使用PATH Mode with FOR XML這樣的東西。

select C.NumberOFCourse, 
     C.NumberOFSemesterCredit 
from Courses as C 
for xml path('Students')