2017-04-11 29 views
3

請考慮以下合理簡單的SQL查詢;爲什麼名稱空間定義出現在此查詢的內部元素以及外部元素上

Declare @ad varchar(3) = 'GBR', 
    @date varchar(10) , 
    @time varchar(5), 
    @refnum varchar(17), 
    @tm varchar(2) = 'CU'; 

    Set @date = FORMAT(GETUTCDATE(),'yyyy-MM-dd'); 
    Set @time = FORMAT(GETUTCDATE(),'HH-mm'); 
    Set @refnum = 'DOM' + FORMAT(GETUTCDATE(),'yyyyMMdd') + '123456'; 
    WITH XMLNAMESPACES ('http://ec.europa.eu/fisheries/schema/ers/v3' as ers) 


    Select @ad AS '@AD', 
    @ad AS '@FR', 
    @refnum AS '@ON', 
    @date as '@OD', 
    @time AS '@OT', 

    (Select @tm AS '@TM' For xml path('ers:DAT'), TYPE) 

    For xml path('ers:OPS') 
GO 

我期待/希望從這回來的是以下;

<ers:OPS xmlns:ers="http://ec.europa.eu/fisheries/schema/ers/v3" AD="GBR" FR="GBR" ON="DOM20170411123456" OD="2017-04-11" OT="14-47"> 
    <ers:DAT TM="CU" /> 
</ers:OPS> 

而我實際上回來的是;

<ers:OPS xmlns:ers="http://ec.europa.eu/fisheries/schema/ers/v3" AD="GBR" FR="GBR" ON="DOM20170411123456" OD="2017-04-11" OT="14-47"> 
    <ers:DAT xmlns:ers="http://ec.europa.eu/fisheries/schema/ers/v3" TM="CU" /> 
</ers:OPS> 

我的問題很簡單,就是爲什麼我回來了我做了什麼,我應該做些什麼來恢復我的希望?

回答

0

這是一個已知問題(實際上它是一個功能,投票被刪除),並且自2007年以來有一個Connect項目打開。 您可以查看here

可能的解決方法是here

相關問題