IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

récupération dynamique du script 'create table'


Sujet :

MS SQL Server

  1. #1
    Membre averti Avatar de Feyrehr
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2006
    Messages : 113
    Points : 345
    Points
    345
    Par défaut récupération dynamique du script 'create table'
    Bonjour,
    Sous SQL Server 2K, je souhaite récupérer en résultat de requête, le script complet de création des tables et optionnellement des index.
    Je souhaite donc connaître la commande qui permet d'avoir ce résultat.
    Je pense qu'il s'agit d'une procédure stockée système (dans l'esprit de la proc stoc sp_helptext).
    J'insisite bien sur une récupération 'dynamique' dans le requeteur, par un appel sous forme de commande de code (ce n'est pas un enchainement de manip 'clic droit', mais la commande appelée par ces actions).
    Merci.

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Pas mieux que sur usenet...

    Ce qu'il faut comprendre, c'est qu'il n'y a pas de DDL stocké dans une table système, pour la structure des tables. Le code des procédures, fonctions, etc. est conservé dans syscomments, mais pas le code des tables. C'est assez logique puisque tu peux faire toutes sortes de modifications de structure de table (ALTER TABLE...), et ce code devrait être regénéré à chaque fois.
    Ensuite, T-SQL aurait pu implémenter la norme SQL99 (sauf erreur) en permettant un CREATE TABLE ... LIKE, mais M$ ne l'a pas fait.

    Donc, il n'y a pas de commande SQL pour récupérer le DDL de création d'une table, c'est pour ça que d'aucuns ont créé des scripts SQL (liens ci-dessous) qui utilisent les objets COM de SQL-DMO. Enterprise Manager, ou Query Analyzer, quand ils génèrent ce DDL, font la même chose : ils passent par SQL-DMO. (SDO sur SQL server 2005).
    Si tu veux en avoir le coeur net, il te suffit de tracer les commandes qu'envoient ces outils à SQL, avec une session du profiler.

    Je reproduis les liens trouvés pour ceux qui ne lisent pas les newsgroups :
    Il y a éventuellement ceci qui peut le faire :
    http://vyaskn.tripod.com/code.htm#tblscript
    Mais cela implique l'installation d'un objet COM qui sera appelé depuis
    SQL.
    Pour générer le DDL des tables à l'extérieur, il y a SQL-DMO. Exemples
    d'utilisation en Python et Ruby :
    http://www.babaluga.org/doku.php/pro...on_python-ruby

    Tu as aussi un exemple d'appel de DMO depuis SQL, pas Jasper Smith :
    http://groups.google.fr/group/micros...3bbe56bb4b9749
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Create Table avec PRO*C avec nom de table dynamique
    Par laurent_56 dans le forum Oracle
    Réponses: 6
    Dernier message: 01/12/2011, 18h08
  2. [PRO*C] Problème avec CREATE TABLE et nom de table dynamique
    Par laurent_56 dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 24/11/2011, 18h06
  3. script création table dynamique
    Par daliok dans le forum PL/SQL
    Réponses: 3
    Dernier message: 19/03/2010, 12h59
  4. Pb avec CREATE TABLE "dynamique"
    Par forzaxelah dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/07/2006, 13h14
  5. Database new user & create table
    Par MFDev dans le forum InterBase
    Réponses: 3
    Dernier message: 30/09/2003, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo