2010-11-16 17 views
2

Je dois définir une variable @XMLOutput à la valeur de la sous-requête dans XMLformat.SQL Server 2000: Problème lors de l'écriture de la sortie xml

Le sous-requête fonctionne très bien lui-même, mais quand toute requête est exécutée i obtenir l'erreur:

Incorrect syntax near XML.

SELECT @XMLOutput = (SELECT loc 
         FROM ghhsitemap url 
        FOR XML AUTO, Elements) 

Un deuxième problème: lors de la spécification @XMLOutput comme une variable et définissez son type de données à xml il dit que ce n'est pas un type de données valide.

Comment cela peut-il être résolu?

+0

aussi quand j'ajouter @XMLOutput comme une variable et définissez son type de données au format XML, il dit qu'il est pas un type de données valides – will

+1

Qu'est-ce que sont les données ressemblent, et qu'est-ce que vous avez besoin en conséquence? –

+0

C'est juste un entier, je veux que la sortie dise – will

Répondre

0

Ce n'est pas pris en charge dans SQL 2000. Et ne prennent pas la peine d'essayer de le retourner dans une sous-requête corrélée soit - cela fonctionnera pas non plus en sql 2000. Fun hein?

Dans votre situation, puisque votre xml est si simple je construirais simplement le xml comme une chaîne et le retournerais.

DECLARE @XmlString varchar(500) 
SELECT @XmlString = '<loc>' + Cast(loc as varchar(8)) + '</loc>' FROM ghhsitemap 
+0

Merci, c'était un bon hack, très apprécié – will

2

support type XML n'a pas été inclus dans SQL Server jusqu'à ce que SQL Server 2005.

+0

bien que cela me met dans un lien – will

0

Tout comme @XMLOutput déclare varchar()

Votre syntaxe pour la définition des valeurs est erronée - il devrait être comme ceci:

SELECT @XMLOutput = loc FROM ghhsitemap url FOR XML AUTO, Elements 
+0

droite, mais je obtenez cette erreur: La clause FOR XML n'est pas autorisée dans une instruction ASSIGNMENT. – will