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 :

dependances


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut dependances
    salut,

    voila, je dois copier pleins de tables d'une base vers une autre que je dois prealablement vider, le pb c'est qu'il y a des dependance partout, je voulais savoir s'il y avait pas une commande miracle pour desactiver (pas supprimer) les dependances pour ensuite les reactiver genre:

    mabase.dependance OFF :op

    merci

    greg

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    En SQL Server 2005, vous pouvez utiliser la procédure stockée que j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    CREATE PROCEDURE P_WHAT_TO_DELETE_BEFORE
        @TABLE_TO_DELETE VARCHAR(128),  -- targettable to delete
    	 @DB              VARCHAR(128),  -- target database     
    	 @USR             VARCHAR(128)   -- target schema (dbo in most cases)
    AS
     
    WITH T_CONTRAINTES (table_name, father_table_name)
    AS (SELECT DISTINCT CTU.TABLE_NAME, TCT.TABLE_NAME
        FROM   INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RFC
    	        INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE CTU
    			        ON RFC.CONSTRAINT_CATALOG    = CTU.CONSTRAINT_CATALOG                    
    					  AND RFC.CONSTRAINT_SCHEMA = CTU.CONSTRAINT_SCHEMA                    
    					  AND RFC.CONSTRAINT_NAME   = CTU.CONSTRAINT_NAME           
    			  INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS TCT                 
    			        ON RFC.UNIQUE_CONSTRAINT_CATALOG    = TCT.CONSTRAINT_CATALOG                    
    					  AND RFC.UNIQUE_CONSTRAINT_SCHEMA = TCT.CONSTRAINT_SCHEMA                    
    					  AND RFC.UNIQUE_CONSTRAINT_NAME   = TCT.CONSTRAINT_NAME    
    	  WHERE  CTU.TABLE_CATALOG = @DB      
    	    AND  CTU.TABLE_SCHEMA  = @USR)
     ,T_TREE_CONTRAINTES (table_to_delete, level)
     AS (SELECT DISTINCT table_name, 0
         FROM   T_CONTRAINTES    
    	  WHERE  father_table_name = @TABLE_TO_DELETE    
    	  UNION  ALL    
    	  SELECT priorT.table_name, level - 1    
    	  FROM   T_CONTRAINTES priorT           
    	         INNER JOIN T_TREE_CONTRAINTES beginT                 
    				      ON beginT.table_to_delete = priorT.father_table_name    
    	  WHERE  priorT.father_table_name <> priorT.table_name) 
    SELECT DISTINCT *
    FROM   T_TREE_CONTRAINTES
    ORDER  BY level
    GO
     
    The self-reference case has been integrated. The parameters are :
    @DB (database name),
    @USR (schema name : dbo),
    @TABLE_TO_DELETE (table you want to delete).
    Elle vous donnera l'ordre des tables à supprimer.

    Avec un peu d'astuce vous pouvez même pisser par SQL le code des DELETE.

    La ref complet de cet article : http://www.sqlservercentral.com/columnists/fBROUARD/recursivequeriesinsql1999andsqlserver2005.asp

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    merci,
    tu precises en SQL 2005 ... ca marche pas avec 2000? car j'ai mssql2000......

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    non, pas en 2000. Les requêtes récursives n'existent pas en v 2000.

    Il faut faire cela à la main ou avec une proc stock...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Dependances Fonctionnelles
    Par Xiao-An dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 15/02/2005, 15h12
  2. fermeture de dependance fonctionnelle
    Par djay dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 26/01/2005, 14h09
  3. Les différences entre association et dépendance ?
    Par sephile dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 12/01/2005, 13h43
  4. [JBuilder X][Exécutable] Gestion de dépendances
    Par marevinc dans le forum JBuilder
    Réponses: 3
    Dernier message: 16/11/2004, 09h08
  5. Packages - problème de dependances
    Par Invité dans le forum Administration système
    Réponses: 3
    Dernier message: 14/06/2004, 10h46

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