begin process at 2008 07 25 13:19:33
1 216 226 membres
190 nouveaux aujourd'hui
14 180 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LIRE SUR SQL SERVER 2005 LE NOM DE MES PROPRES SCHEMAS XSD (XML)


Information sur la source

Catégorie :Trucs & Astuces Classé sous : xsd, xml, schéma, sqlserver2005 Niveau : Débutant Date de création : 09/01/2007 Date de mise à jour : 18/01/2007 11:07:58 Vu : 1 933

Note :
Aucune note

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

cherchant a lire sur sql server le nom de mes propres schemas xml
je me suis tombé sur cette excellente source de skweeky qui a été le début de ma solution
http://www.sqlfr.com/codes/SQL-SERVER-2005-RECUPERER-CONTENU-SCHEMA-XSD_40058.aspx

Malheureusement cela me renvoyait dans un champs le contenu de tout mes schemas
or moi je voulais savoir quels etaient les noms des schema stocké dans ma base !

Ne trouvant aucune information sur msdn2 ou msdn sur XML_SCHEMA_NAMESPACE(sch.name, xsd.name) quand on ne connait pas par avance le nom du schema

j'ai trouvé en tatonnant ceci

Source

  • SELECT XML_SCHEMA_NAMESPACE(sch.name, xsd.name)
  • FROM sys.xml_schema_collections AS xsd
  • JOIN sys.schemas AS sch ON xsd.schema_id = sch.schema_id
  • WHERE sch.schema_id <> 4
  • and xsd.name = 'SchemaXMLBovin'
  • go
  • --(c'est l'exemple de skweeky "amélioré") quoique plus simple en mettant directement
  • SELECT XML_SCHEMA_NAMESPACE(sch.name, xsd.name)
  • FROM sys.xml_schema_collections AS xsd
  • JOIN sys.schemas AS sch ON xsd.schema_id = sch.schema_id
  • WHERE xsd.name = 'SchemaXMLBovin'
  • Je trouve bien le contenu de mon schema mais pas son nom !
  • c'est en faisant ceci que j'ai eu l'info qui manquait
  • SELECT * FROM sys.xml_schema_collections
  • du coup j'ai trouvé OU chercher l'info et donc la voici
  • SELECT xsd.name FROM sys.xml_schema_collections AS xsd
  • JOIN sys.schemas AS sch ON xsd.schema_id = sch.schema_id
  • WHERE sch.schema_id <> 4 ou alors WHERE xsd.name = 'SchemaXMLqueJeCherche'
  • go
  • notez qu'il y a bien plus simple :)
  • SELECT name FROM sys.xml_schema_collections
  • WHERE schema_id <> 4
SELECT    XML_SCHEMA_NAMESPACE(sch.name, xsd.name) 
FROM sys.xml_schema_collections AS xsd 
    JOIN sys.schemas AS sch ON xsd.schema_id = sch.schema_id 
WHERE sch.schema_id <> 4 
and xsd.name = 'SchemaXMLBovin'
go

--(c'est l'exemple de skweeky "amélioré") quoique plus simple en mettant directement
SELECT    XML_SCHEMA_NAMESPACE(sch.name, xsd.name) 
FROM sys.xml_schema_collections AS xsd 
    JOIN sys.schemas AS sch ON xsd.schema_id = sch.schema_id 
WHERE  xsd.name = 'SchemaXMLBovin'

Je trouve bien le contenu de mon schema mais pas son nom !

c'est en faisant ceci que j'ai eu l'info qui manquait
SELECT * FROM sys.xml_schema_collections

du coup j'ai trouvé OU chercher l'info et donc la voici

SELECT xsd.name FROM sys.xml_schema_collections AS xsd 
    JOIN sys.schemas AS sch ON xsd.schema_id = sch.schema_id 
WHERE sch.schema_id <> 4 ou alors WHERE xsd.name = 'SchemaXMLqueJeCherche'  
go

notez qu'il y a bien plus simple :)

SELECT name FROM sys.xml_schema_collections 
WHERE schema_id <> 4

Conclusion

And in the end
The love you take
Is equal to the love you make
16 janvier 2007 14:41:27 :
suite à la remarque de Fabrice Romelard : ceci ne fonctionne que sur SQL Server 2005
17 janvier 2007 14:43:55 :
ajout d'une fonction et rectif des mots clefs et du titre
18 janvier 2007 11:07:58 :
modif mot cles
  • signaler à un administrateur
    Commentaire de fabrice69 le 16/01/2007 10:37:34 administrateur CS

    Bonjour,
    la source est intéressante, mais il faut absolument préciser aux utilisateurs sur quel environnement votre script fonctionne.
    En l'occurence, ce script ne fonctionne pas sur les versions antérieures à SQL Server 2005.

    Cordialement
    Romelard Fabrice [MVP]

  • signaler à un administrateur
    Commentaire de dedzep le 16/01/2007 14:52:09

    Merci Fabrice, erreur corrigée !
    Ceci dit je n'arrive pas à recuperer le resultat en asp.net vb pour afficher toute l'arborescence de mon xsd
    ma requette étant
    SELECT XML_SCHEMA_NAMESPACE(sch.name, xsd.name)
    FROM sys.xml_schema_collections AS xsd
        JOIN sys.schemas AS sch ON xsd.schema_id = sch.schema_id
    WHERE xsd.name = 'SchemaXMLBovin'  

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

Animation Flash alimen...
Budget : 6 000€
Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS