2009-03-10 5 views
2

I 다음 TSQL 문이 있습니다MS TSQL

select 
    tblName  "TblName", 
    structure "TblName/STRUCTURE", 
    sqlRetrieve "TblName/SQLRETRIEVE", 
    Identifier "TblName/IDENTIFIER", 
    '2'   "TblName/OBJECTTYPE" 
from 
    configTable 
for xml path ('') 

출력 :

<TblName>PD_CODE_PRODUCTS 
    <STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE> 
    <SQLRETRIEVE>BATCHSP</SQLRETRIEVE> 
    <IDENTIFIER>DATA_OWNER</IDENTIFIER> 
    <OBJECTTYPE>2</OBJECTTYPE> 
</TblName> 
<TblName>PD_two 
    <STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE> 
    <SQLRETRIEVE>BATCHSP</SQLRETRIEVE> 
    <IDENTIFIER>DATA_OWNER</IDENTIFIER> 
    <OBJECTTYPE>2</OBJECTTYPE> 
</TblName> 

을하지만 난이 출력을 가지고 (요소 이름을 원하는 :

<PD_CODE_PRODUCTS> 
    <STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE> 
    <SQLRETRIEVE>BATCHSP</SQLRETRIEVE> 
    <IDENTIFIER>DATA_OWNER</IDENTIFIER> 
    <OBJECTTYPE>2</OBJECTTYPE> 
</PD_CODE_PRODUCTS> 
<PD_two> 
    <STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE> 
    <SQLRETRIEVE>BATCHSP</SQLRETRIEVE> 
    <IDENTIFIER>DATA_OWNER</IDENTIFIER> 
    <OBJECTTYPE>2</OBJECTTYPE> 
</PD_two> 

누구나 T-SQL을 사용하여이를 수행하는 방법을 알고 있습니까?

감사
다니엘은

답변

1

난 당신이 불행하게도, T-SQL과이를 달성 할 수있을 거라고 생각하지 않습니다.

당신이 얻을 수있는 가장 가까운 이것이다 :

<TABLE Name="PD_CODE_PRODUCTS"> 
    <TblName> 
    <STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE> 
    <SQLRETRIEVE>BATCHSP</SQLRETRIEVE> 
    <IDENTIFIER>DATA_OWNER</IDENTIFIER> 
    <OBJECTTYPE>2</OBJECTTYPE> 
    </TblName> 
</TABLE> 
<TABLE Name="PD two"> 
    <TblName> 
    <STRUCTURE>PD_CODE_PRODUCTS</STRUCTURE> 
    <SQLRETRIEVE>BATCHSP</SQLRETRIEVE> 
    <IDENTIFIER>DATA_OWNER</IDENTIFIER> 
    <OBJECTTYPE>2</OBJECTTYPE> 
    </TblName> 
</TABLE> 

당신이되고 당신의 쿼리를 적용하는 경우

:

select 
    tblName '@Name', 
    structure "TblName/STRUCTURE", 
    sqlRetrieve "TblName/SQLRETRIEVE", 
    Identifier "TblName/IDENTIFIER", 
    '2'   "TblName/OBJECTTYPE" 
from 
    configTable 
for xml path ('TABLE') 

미안 내가 여기에 더 도움이 될 수 없습니다 - 즉 마이크로 소프트 기능 같아요 정말 고려하지 않았습니다 (지금까지)! :-)

마크

0

당신은 내가 당신이하려고하는 일을하지 말라고 애원 XML 구조에 대한 제어가있는 경우. 필자는 XML 요소 이름이 데이터를 기반으로 변경되는 XML 문서를 실행했으며 작업하기가 끔찍합니다. XPath 문은 어렵습니다. XSLT는 거의 불가능합니다.

marc_s가 제안한 것을 수행하면 나중에 감사 할 것입니다.

구조를 제어 할 수 없다면 내 동정심이 생길 것입니다.

0

정확하게 이해했다면 - 많은 주요 뿌리가있는 대신 하나의 루트 요소가 필요합니다.

사용 :

select tblName '@Name', structure "TblName/STRUCTURE", sqlRetrieve "TblName/SQLRETRIEVE", Identifier "TblName/IDENTIFIER", '2'   "TblName/OBJECTTYPE"from configTable for xml path (''), root('TABLE'), type