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.
Extraction d'une colonne de la table retournée par la procédure stockée xp_logininfo [ par zavier666 ]
Bonjour, j'ai fait un petit soft qui permet de se loguer à un serveur sql et de l'interroger (en download sur le site). lorsque je lui passe la comm
Différentes valeurs pour un même code [ par Neurasthenie ]
Bonjour,Je travailles actuellement sur un projet de migration (de base à base) et j'écris donc les procédures stockées qui permettront d'aller cherche
Comment utiliser du binaire dans une requete dynamique ? [ par boromsikim ]
Bonjour à tous,J'utilise sous MSSQL 2005 des colonnes timestanp pour archiver des données depuis les tables d'un ERP vers le datamart de mon cube.Jusq
Suppression d'une colonne ayant une valeur par défaut [ par RMI ]
Bonjour à tous,Je souhaite supprimer une colonne d'une table qui possède une valeur par défaut. create table MA_TABLE( id int
Liste des mots d'une colonne [ par Yenapa ]
Bonjour a tousJe souhaite construire une liste des mots à partir d'une tableN'ayant rien trouvé sur le net pour faire ça, je pense devoir utiliser une
duplication des lignes d'une table en fonction d'une valeur [ par ple2415 ]
Bonjour à tous,je souhaiterais dupliquer les lignes d'une table en fonction de la valeur contenue dans un des champs de cette table.exemple d'une lign
Comparaison/calcul ligne par ligne dans une même colonne d'une même table [ par nordine001 ]
[size=100] Bonjour, Afin de savoir si un service fonctionne, chaque action est enregistrée dans une table. Cette dernière n'a pas d'id autoincrémenté
créer table avec plusieur clés etrangérs en sql server 2005 [ par amal2008 ]
Bonjour, je veux faire une requete de create table en sql server 2005 , avec tous les contrainres et types des champs,le probléme c'est qu il m'accept
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
MYSQLSERVERMYSQLSERVER par favella
Cliquez pour lire la suite par favella
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|