Announcement

Collapse
No announcement yet.

Ms SQL 2005 Xml-Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ms SQL 2005 Xml-Problem

    Hallo zusammen,

    ich habe ein Problem mit einem Xml Feld.
    Das Feld hat ca. diese Werte:

    Code:
    <root>
    <key>Key1</key>
    <key>Key2</key>
    </root>
    So diese Werte(Anzahl unbekannt) möchte ich für die ganze Tabelle in einem Select oder als Temp-Table + Select in einer Store Procedure zurückgeben. Mit $SpaltenName$.query oder $SpaltenName$.value habe ich es schon ausprobiert. Bei query bastelt der Sql-Server die strings zusammen und bei value muss ich die Anzahl der Zeilen kennen.

    Tschüß

    edit:

    Also eine Lösung habe ich gefunden, hab aber keine Ahnung ob man dass so normalerweise macht:

    Code:
    select  Key.value('.[1]', 'varchar(100)') Keys
    from [Key] k 
    cross apply k.SearchKey.nodes('//Key') as T(Key)
    Where  Key.value('.[1]', 'varchar(100)') <>  ''
    //SearchKey ist die XmlSpalte

    Tschau
    Zuletzt editiert von mameolan; 19.06.2008, 10:20.

  • #2
    Hi,

    meinst Du das so:
    Code:
    declare @x xml;
    set @x = N'<root>
    <key>Key1</key>
    <key>Key2</key>
    </root>'
    
    select T.c.value( '.', 'nvarchar(max)' ) from @x.nodes( '/root/key' ) T(c)
    Karsten

    Comment


    • #3
      Oh danke.
      Dein Weg schaut irgendwie übersichtlicher aus.

      Tschau

      Comment

      Working...
      X