Accueil > > > LISTE DES BASES,TABLES ET COLONNES TRIÉS PAR TYPE (PROCEDURE STOCKÉS,VUES,TABLES UTLISATEUR,TABLES SYSTEME ETC....)
LISTE DES BASES,TABLES ET COLONNES TRIÉS PAR TYPE (PROCEDURE STOCKÉS,VUES,TABLES UTLISATEUR,TABLES SYSTEME ETC....)
Information sur la source
Description
Ce code liste a l'aide d'un curseur liste la base de donnée d'un serveur SQL sur IIS il doit etre possible de le rendre plsu rapide en evitant le curseur je n'ai pas encore trouvé, voici donc une methode qui permet de lister le tout a partir d'un curseur, je mettrais ma source a jour si je trouve le moyen de le faire sans passer par le curseur car pour l'insatnt c'est un peu long des que la base de donnée devient importante. En tout cas peut etre utile pour dresser un tree view de la base de donnée a condition de ne pas avoir une trop grosse base de donnée.
Source
- /*Petite Mise a Jour : Cette requete fait la meme Chose que le curseur du dessous mais la fonction sp_Msforeachhdb n'est pas documentée dans SQL server donc a utliser avec precaution*/
-
- exec sp_Msforeachdb 'SELECT ''?'' as nameBase,O.name as nameTable,O.TYPE,C.name as nameColumn FROM "?".dbo.sysobjects O LEFT JOIN "?".dbo.syscolumns C on C.id=O.id'
-
- rem : le ? remplace le nom des bases de données, la fonction sp_Msforeachdb remplace elle meme le ? par le nom de toutes les Tables
-
- /*Meme Chose mais avec curseur (10* plus lent)*/
- DECLARE C_Base CURSOR
- FOR
- SELECT
- B.name AS NomBase,
- B.dbid AS IdBase
- FROM
- master.dbo.sysdataBases B
- LEFT JOIN master.dbo.sysobjects O
- on O.id=B.dbid
-
- DECLARE @Base as varchar(50)
- DECLARE @Id as int
- DECLARE @SQL as varchar(5000)
- declare @Tri as int
- DECLARE @i as int
-
- SET @i=0
- SET @SQL='SELECT maBase,nameTable,nameColumn,
- NomType=
- CASE type
- WHEN ''U'' THEN ''Tables Utilisateur''
- WHEN ''FN'' THEN ''Fonctions''
- WHEN ''P'' THEN ''Procedure Stockée''
- WHEN ''S'' THEN ''Tables Systemes''
- WHEN ''TR'' THEN ''Triggers''
- WHEN ''V'' THEN ''VUES''
- ELSE ''Autre''
- END,
- Tri=
- CASE type
- WHEN ''U'' THEN ''1''
- WHEN ''FN'' THEN ''5''
- WHEN ''P'' THEN ''4''
- WHEN ''S'' THEN ''2''
- WHEN ''TR'' THEN ''6''
- WHEN ''V'' THEN ''3''
- ELSE 7
- END FROM ('
-
- OPEN C_Base
- FETCH C_Base INTO @Base,@Id
- WHILE @@FETCH_STATUS = 0
- BEGIN
- IF @i>0
- BEGIN
- SET @SQL = @SQL + ' UNION '
- END
- SET @SQL = @SQL + ' SELECT ''' + @Base + ''' as maBase,O.name as nameTable,O.TYPE,C.name as nameColumn FROM [' + @Base + '].dbo.sysobjects O LEFT JOIN [' + @Base + '].dbo.syscolumns C on C.id=O.id'
- SET @i=@i+1
- FETCH C_Base INTO @Base,@Id
- END
- CLOSE C_Base
- DEALLOCATE C_Base
- SET @SQL= @SQL + ')AS NewVue ORDER BY maBase,Tri,nameTable,NameColumn'
- exec(@SQL)
/*Petite Mise a Jour : Cette requete fait la meme Chose que le curseur du dessous mais la fonction sp_Msforeachhdb n'est pas documentée dans SQL server donc a utliser avec precaution*/
exec sp_Msforeachdb 'SELECT ''?'' as nameBase,O.name as nameTable,O.TYPE,C.name as nameColumn FROM "?".dbo.sysobjects O LEFT JOIN "?".dbo.syscolumns C on C.id=O.id'
rem : le ? remplace le nom des bases de données, la fonction sp_Msforeachdb remplace elle meme le ? par le nom de toutes les Tables
/*Meme Chose mais avec curseur (10* plus lent)*/
DECLARE C_Base CURSOR
FOR
SELECT
B.name AS NomBase,
B.dbid AS IdBase
FROM
master.dbo.sysdataBases B
LEFT JOIN master.dbo.sysobjects O
on O.id=B.dbid
DECLARE @Base as varchar(50)
DECLARE @Id as int
DECLARE @SQL as varchar(5000)
declare @Tri as int
DECLARE @i as int
SET @i=0
SET @SQL='SELECT maBase,nameTable,nameColumn,
NomType=
CASE type
WHEN ''U'' THEN ''Tables Utilisateur''
WHEN ''FN'' THEN ''Fonctions''
WHEN ''P'' THEN ''Procedure Stockée''
WHEN ''S'' THEN ''Tables Systemes''
WHEN ''TR'' THEN ''Triggers''
WHEN ''V'' THEN ''VUES''
ELSE ''Autre''
END,
Tri=
CASE type
WHEN ''U'' THEN ''1''
WHEN ''FN'' THEN ''5''
WHEN ''P'' THEN ''4''
WHEN ''S'' THEN ''2''
WHEN ''TR'' THEN ''6''
WHEN ''V'' THEN ''3''
ELSE 7
END FROM ('
OPEN C_Base
FETCH C_Base INTO @Base,@Id
WHILE @@FETCH_STATUS = 0
BEGIN
IF @i>0
BEGIN
SET @SQL = @SQL + ' UNION '
END
SET @SQL = @SQL + ' SELECT ''' + @Base + ''' as maBase,O.name as nameTable,O.TYPE,C.name as nameColumn FROM [' + @Base + '].dbo.sysobjects O LEFT JOIN [' + @Base + '].dbo.syscolumns C on C.id=O.id'
SET @i=@i+1
FETCH C_Base INTO @Base,@Id
END
CLOSE C_Base
DEALLOCATE C_Base
SET @SQL= @SQL + ')AS NewVue ORDER BY maBase,Tri,nameTable,NameColumn'
exec(@SQL)
Historique
- 03 octobre 2005 16:47:08 :
- Ajout d'une methode Sans curseur 10* plus rapide (2s contre 20 avec le curseur sur ma base de données)
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Nom d'une colonne [ par NoOneElse ]
salut,je développe une application de traçage d'une base de donnée Oracle où je peut crée des TRIGGER a partir d'un nom d'une table existe dans la bas
table dans base de donnée avec mise à jour de colonne [ par lsamsoumal ]
Bonjour tout le monde. dans une base de données mysql je veux créer une table presence qui contient 3 colonnes: utilisateur,date/heure et evenement.
Modification de la longueur d'une colonne par la longueur d'une colonne d'une autre table existante [ par karlil ]
Bonjour, J'ai essayé plusieurs requêtes, mais je n'arrive pas à modifier la longueur d'une colonne à partir de la longueur d'une colonne d'une autre
comment importer la colonne d'une table d'une base dans la colonne d'une table d'une autre base [ par oximo ]
Hello, un titre un peu compliqué mais qui dit bien ce que je cherche à faire (et peut être pourquoi je ne trouve pas de solution sur google ;) ) Je c
Pb sur la structure d'une base de données [ par bobarman ]
Bonjour, Je me présente, Je m'appelle Clément, je suis étudiant en chimie, je développe quand j'ai du temps libre et actuellement je suis en stage da
Erreur oracle error ORA-01747: spécification utilisateur.table.colonne, table.colonne ou colonne non valide [ par midoxe ]
Bonjour, C'est la première fois que je viens sur ce forum d'SQL les amis[^^happy13] je rencontre un problème bizarre que je n'ai jamais rencontré su
remplire une table dans une base de donnée distante [ par hanouna021 ]
bonjour,je suis debutante en windev et je veux remplire une table personne dans une base de donnée distante j'ai utiliser une requete mais jarrive pas
copier une base avec structure identique [ par brezoneg ]
Bonjour, J'essaye de faire la copie d'une table vers une autre (un clone en quelque sorte) en utilisant : create table nouvelle_table as select * from
liste les bases et tables sur sqlser 200 [ par xzonz ]
bonjour a toutes et tous ma question est simple (à poser du moins !) est il possible en une seule requete de lister toutes les bases d'un serveur sq
Problème de clée étrangère [ par emmanuel9 ]
Bonjour à tous, Mon problème vient du faite que j'ai plusieurs tables dans une base de données dont une table personne et j'ai un progr
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|