Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1113 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ SQL serveur ] - récuperer en SQL la structure d'une base / d'une ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ SQL serveur ] - récuperer en SQL la structure d'une base / d'une ...

n°346544
ZuL
Posté le 28-03-2003 à 14:13:44  profilanswer
 

d'une table.
s'possib' ?  
comment qu'on fait ? [:xx_xx]
 
merci d'avance :)

mood
Publicité
Posté le 28-03-2003 à 14:13:44  profilanswer
 

n°346582
drasche
Posté le 28-03-2003 à 14:38:42  profilanswer
 

dans l'Enterprise Manager, tu vas sur ta table et tu passes en design mode.  
Dans les menus disponibles, tu as Generate Scripts.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°346611
ZuL
Posté le 28-03-2003 à 15:00:29  profilanswer
 

ca c'est pour avoir un dump de la base nan ?
moi ce dont j'ai besoin c'est :  
 
me connecter en SQL sur une base.
recuperer la liste des tables en SQL.
recuperer la structure d'une table.
 
tout ca pour concevoir une classe d'encapsulation de SQL serveur ds un module de gestion de BDD. :)

n°346628
drasche
Posté le 28-03-2003 à 15:12:17  profilanswer
 

faudrait voir avec la librairie Microsoft SQL DMO, je suis pas certain mais on pourrait bien récupérer des scripts avec cette lib.  En tout cas, tu devras certainement passer par une librairie spécifique à SQL Server.  Tu codes en quoi?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°346630
ZuL
Posté le 28-03-2003 à 15:14:04  profilanswer
 

drasche a écrit :

faudrait voir avec la librairie Microsoft SQL DMO, je suis pas certain mais on pourrait bien récupérer des scripts avec cette lib.  En tout cas, tu devras certainement passer par une librairie spécifique à SQL Server.  Tu codes en quoi?


 
merci pour les infos
 
en php

n°346673
ZuL
Posté le 28-03-2003 à 15:41:33  profilanswer
 

SQLDMO oui mais pour VBscript...sniiiif
 
qqun a une idée ?

n°346695
ZuL
Posté le 28-03-2003 à 15:59:12  profilanswer
 

trouvé, missi les tables sytème

n°346697
vttman2
Je suis Open ...
Posté le 28-03-2003 à 16:04:03  profilanswer
 

Entreprise Manager
Tu cliques droit sur ta base
Toutes les tâches - générer script SQL
onglet général - Afficher tout
=>Toutes les tables
onglet option
=> Ok tu entres le nom de ton fichier
et c tout bon !

n°346846
MagicBuzz
Posté le 28-03-2003 à 19:43:56  profilanswer
 

alors, c'est très simple :
 
il faut taper dans les tables système.
 
par contre, leur schéma est assez complexe, je ne l'ai pas encore totalement décrypté ;)
 
liste des tables :
 

Code :
  1. SELECT *
  2. FROM   dbo.sysobjects
  3. WHERE  (xtype = 'U') AND (name <> 'dtproperties')


 
liste des champs regroupés par tables, avec leurs champs typés et tout :
 

Code :
  1. Code recommandé par SQL Server :
  2. SELECT     o.name AS TABLENAME, o.crdate AS DATE_CREA, o.refdate AS DATE_UPD, col.colid AS COL_NUM, col.name AS FIELD_NAME, t.name AS TYPE,
  3.                       col.length AS LENGTH
  4. FROM         dbo.syscolumns col INNER JOIN
  5.                       dbo.sysobjects o ON col.id = o.id INNER JOIN
  6.                       dbo.systypes t ON col.xtype = t.xtype
  7. WHERE     (o.xtype = 'U') AND (o.name <> 'dtproperties')
  8. ORDER BY o.name, col.colid
  9. Code lisible :D
  10. SELECT o.name AS TABLENAME, o.crdate AS DATE_CREA, o.refdate AS DATE_UPD, col.colid AS COL_NUM, col.name AS FIELD_NAME, t.name AS TYPE, col.length AS LENGTH
  11. FROM dbo.syscolumns col, dbo.systypes t,dbo.sysobjects o
  12. WHERE     (o.xtype = 'U') AND (o.name <> 'dtproperties')
  13. AND col.id = o.id
  14. AND col.xtype = t.xtype
  15. ORDER BY o.name, col.colid


Message édité par MagicBuzz le 28-03-2003 à 19:44:51
n°346848
MagicBuzz
Posté le 28-03-2003 à 19:46:12  profilanswer
 

Y'a aussi des tables pour les indexes, les contraintes, les dépendances, les procédures stockées... C'est un joyeux bordel, mais là t'as déjà le principal ;)

mood
Publicité
Posté le 28-03-2003 à 19:46:12  profilanswer
 

n°346857
nraynaud
lol
Posté le 28-03-2003 à 19:58:42  profilanswer
 

MagicBuzz a écrit :

alors, c'est très simple :
 
il faut taper dans les tables système.
 
par contre, leur schéma est assez complexe, je ne l'ai pas encore totalement décrypté ;)
 


T'as pas plutôt des belles vues toute faites et qui répondent à tes besoins comme dans Oracle ?¿?

n°346858
MagicBuzz
Posté le 28-03-2003 à 19:59:58  profilanswer
 

Non, y'a que ces tables (mais l'avantage, c'est qu'il y a tout :D)


Message édité par MagicBuzz le 28-03-2003 à 20:00:16
n°347560
ZuL
Posté le 30-03-2003 à 16:27:26  profilanswer
 

meri magicbuzz, en fait vendredi soir (sic) j'avais trouvé comment récupérer certaines infos ds les tables sytèmes.
par contre, j'ai pas trouvé comment récupérer une info dont j'ai absoluement besoin : savoir si un champs est une clé primaire.
j'ai regardé ds les tables indexes mais y a meme une entrée pour les champs non clés...donc je sais pas trop ou est rangée l'info.
t'as une idée ? [:xx_xx]
 
en tout cas merci beaucoup et bonne fin de wikend :)

n°347953
ZuL
Posté le 31-03-2003 à 09:43:44  profilanswer
 

[:karochky]

n°348208
ZuL
Posté le 31-03-2003 à 13:59:07  profilanswer
 

et dans l'absolu personne sait ?  [:tomawack]

n°350523
MagicBuzz
Posté le 02-04-2003 à 20:00:46  profilanswer
 

t'as regardé dans sysconstraints ?

n°350525
MagicBuzz
Posté le 02-04-2003 à 20:04:33  profilanswer
 

Ouais, nan, c'est pas dedans...
 
Mais dis-donc, t'as pas beaucoup cherché :sarcastic:
 

SELECT     *
FROM         dbo.sysindexkeys


 
Ho, toutes les clé primaires ! :sarcastic: ;)
 

SELECT     *
FROM         dbo.sysforeignkeys


Ho, toutes les clés étrangères !

n°351254
ZuL
Posté le 03-04-2003 à 11:37:33  profilanswer
 

MagicBuzz a écrit :

Ouais, nan, c'est pas dedans...
 
Mais dis-donc, t'as pas beaucoup cherché :sarcastic:
 

SELECT     *
FROM         dbo.sysindexkeys


 
Ho, toutes les clé primaires ! :sarcastic: ;)
 

SELECT     *
FROM         dbo.sysforeignkeys


Ho, toutes les clés étrangères !


 
moué sauf que les colonnes sont pas référencées par un id unique (ou alors l'est pas ds la table syscolumns) et donc a partir de la je vois mal comment récup des infos d'une table ne contenant que des id.
cependant la procédure privée sp_pkeys marche bien (et le code de la procédure l'est pas glop)
 
merci pour tout les gens

n°351273
MagicBuzz
Posté le 03-04-2003 à 11:45:13  profilanswer
 

c'est une clé double :sarcastic:
 
la première c'est l'ID de la table, la seconde c'est le numéro de colonne dans la table. c'est rigoureusement la même clé que dans syscolumns.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ SQL serveur ] - récuperer en SQL la structure d'une base / d'une ...

 

Sujets relatifs
technique "magique" pour recuperer les données d'une page ?problème bizarre: connexion base mysql
Resolu[c/Linux]Comment recupérer les infos d'un pipe sans perte de don[ACCESS] Transférer ds une Base principale les données d'autres Bases
Peut on attaquer une base de donnée ORACLE depuis le php ou autrerécupérer les évènements clavier
Comment recuperer l'objet d'une ListBoxAide pour requêtes en SQL
recuperer un cookie[SQL- ACCESS] A l'aide !!!
Plus de sujets relatifs à : [ SQL serveur ] - récuperer en SQL la structure d'une base / d'une ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR