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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
PROCEDURE MYSQLPROCEDURE MYSQL par gearmat
Cliquez pour lire la suite par gearmat
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|