2011-08-11 9 views
3

J'ai une table dont la colonne XMLData est TEXT. Comment puis-je lire les données de cette colonneComment lire les données XML dans SQL Server 2005

+2

TSQL? C#? Manque de détails suffisants .... –

+0

Désolé ..... TSQL –

+5

Pourquoi ne le stockez-vous pas en tant que type de données XML au lieu de Texte? Ce serait l'étape 1. –

Répondre

3

Tant que cette colonne est de type TEXT, vous ne serez pas en mesure de faire quelque chose d'utile, vraiment . TEXT a également été déprécié et will be removed in a future version of SQL Server - cesser de l'utiliser.

Si elle stocke XML et seulement XML - le faire du type de données XML.

Celui que vous avez, vous pouvez extraire des éléments individuels d'information à partir de ce XML en utilisant XPath et XQuery - quelque chose comme:

SELECT 
    YourXMlColumn.value('(/Root/SomeItems/Item/FirstName)[1]', 'varchar(50)') as 'FirstName', 
    YourXMlColumn.value('(/Root/SomeItems/Item/Age)[1]', 'int') as 'Age' 
FROM 
    dbo.YourTable 
WHERE 
    (some condition) 

ou si vous avez plusieurs éléments dans une structure de type liste dans votre XML , vous pouvez créer une "pseudo-table" d'éléments XML basée sur une expression XPath.

Ainsi, votre plan d'action devrait être:

  1. faire cette colonne utilisez le type approprié - XML
  2. nous dire plus en détail quel genre de XML que vous avez stocké là-bas, et ce que vous voulez obtenir à partir de ce XML
+0

Merci pour votre réponse rapide. Va changer le type de données en XML –