2009-03-10 28 views
2

Aşağıdaki TSQL deyimi vardır:MS TSQL

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

verir:

<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> 

ama bu çıkışı bulunması (eleman isim istiyorum:

<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> 

Bunu T-SQL ile nasıl gerçekleştireceğini bilen var mı?

Teşekkür
Daniel

cevap

1

Sana maalesef T-SQL ile bunu başarmak mümkün olacak sanmıyorum.

alabileceğiniz en yakın şudur:

<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> 

olmak Sorgunuzla adapte eğer

:

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

Maalesef burada daha fazla yardımcı olamaz - Microsoft bir özelliktir sanırım Gerçekten düşünmedi (şimdiye kadar)! :-)

Marc

0

sen Ne yapmaya çalışıyorsunuz ne yapacağını değil yalvarırım XML yapısı üzerinde herhangi bir kontrol var. XML öğesi adlarının verilere bağlı olarak değiştiği ve çalışmanın korkunç olduğu XML belgelerinde çalışıyorum. XPath ifadeleri zor, XSLT neredeyse imkansız.

Marc_s önerdiklerini, daha sonra ona teşekkür edeceğiz etmeyin.

Yapı üzerinde herhangi bir kontrole sahip değilseniz, benim sempatim var.

0

Size doğru bir şekilde anladım - birçok köke sahip olmak yerine bir kök eleman istersiniz.

Kullanım:

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