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 :

Vérifier qu'un objet (Table, Procédure Stockée) Existe dans notre Base


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 27
    Par défaut Vérifier qu'un objet (Table, Procédure Stockée) Existe dans notre Base
    Il vous est peut être arrivé de vouloir vérifier si une table existe avant d'exécuter une certaine tâche.
    Tous les informations concernant les tables, les procédures stockées, les fonctions et autres objets de base de données sont stockées dans la table SYSOBJECTS. Si vous êtes connecté en tant que Utilisateur sa(super admin), vous pourrez la voir dans vos tables. Il faut aussi noter que toutes les infos concernant les champs de vos tables sont dans la table SYSCOLUMNS.
    Revenons à notre table SYSOBJECTS, dont les champs NAME et XTYPE vont nous intéresser.
    Name nous permettra de rechercher un objet ayant pour nom Name et XTYPE donne le type de la table.
    Les types suivants sont disponibles:
    C = Contrainte CHECK
    D = Valeur par défaut ou contrainte DEFAULT
    F = Contrainte FOREIGN KEY
    L = Journal
    FN = Fonction scalaire
    IF = Fonction table en ligne
    P = Procédure stockée
    PK = Contrainte PRIMARY KEY (de type K)
    RF = Procédure stockée de réplication
    S = Table système
    TF = Fonction table
    TR = Déclencheur
    U = Table utilisateur
    UQ = Contrainte UNIQUE (de type K)
    V = Vue
    X = Procédure stockée étendue
    Pour Trouver un object de façon précise exécutez une requête de sélection dans la table SYSOBJECTS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
        --Permet de savoir si une table 'Produits' existe dans notre base de données
        Select * from sysobjects where name='Produits' and Xtype='U'
        
        --Permet de savoir si une procédure stockée 'SP_ValeursProduits' existe dans notre BD
        Select * from sysobjects where name='SP_ValeursProduits' and Xtype='P'

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Dommage que vous ne l'ayez pas montré aussi pour SQL Server 2005 et 2008, où l'on dispose de la vue système sys.objects et ses sous-ensembles (sys.procedures, sys.tables, sys.triggers (mais pas de sys.functions !)).

    Vous auriez du poster cela dans Contribuez

    @++

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/03/2010, 08h19
  2. Réponses: 0
    Dernier message: 21/08/2007, 15h44
  3. Procédure stockée, concaténation dans requête
    Par sbeu dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/08/2005, 12h03
  4. Réponses: 2
    Dernier message: 20/05/2005, 10h18
  5. procédure stockée Oracle dans delphi 6
    Par UPNE387 dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/05/2004, 09h47

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