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 :

[Script] Effacement d'une base (sans les contraintes)


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Par défaut [Script] Effacement d'une base (sans les contraintes)
    Bonjour,

    J'aimerais "Nettoyer" une base.
    En gros, je pars d'une base restaurée, et j'obtiens une base bien pleine.
    Je désire créer un script qui sélectionne toutes les tables et qui Truncate tout !
    Le problème c'est qu'il y a des contraintes. Donc il faudrait que je fasse une liste des tables, que je check les contraintes, que je les *désactive* (non justement) - que je les remove et que j'efface les données.

    Quelqu'un a une idée ?
    ou un script du genre

    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
     
    DECLARE @table_name nvarchar(30)
     
    DECLARE FIRST_LOOP_CURSOR CURSOR 
        FOR SELECT name FROM sysobjects
    		WHERE type='U'
    		AND NOT name LIKE 'dt%'
     
    OPEN FIRST_LOOP_CURSOR 
    FETCH NEXT FROM FIRST_LOOP_CURSOR 
    INTO @table_name
     
    WHILE @@FETCH_STATUS = 0
     
    	BEGIN
     
    		Print @table_name
     
    		--DELETE FROM @table_name
     
        	FETCH NEXT FROM FIRST_LOOP_CURSOR
    		INTO @table_name
     
    	END
     
    CLOSE FIRST_LOOP_CURSOR 
    DEALLOCATE FIRST_LOOP_CURSOR
    Merci

  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
    21 990
    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 : 21 990
    Billets dans le blog
    6
    Par défaut
    le problème est que cela est récursif. Si vous êtes en 2005 utilisez la vue que j'ai donné en fin de mon article sur la récursivité dans SQL :
    http://www.sqlspot.com/Requetes-recu...TE-Common.html

    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 Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT
    	'ALTER TABLE [' + fk.TABLE_SCHEMA + '].[' + fk.TABLE_NAME + '] DROP CONSTRAINT ' +
        fk.CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS fk

  4. #4
    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,

    Pourqquoi ne pas scripter la base de données d'orgine et exécuter le script sur la BD d'arrivée ?

Discussions similaires

  1. Exporter une base sans les données ?
    Par eulalienath dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 23/10/2007, 16h50
  2. Faire une copie de base sans les enregistrements.
    Par ElsasseR dans le forum Access
    Réponses: 4
    Dernier message: 17/12/2006, 16h15
  3. Réponses: 3
    Dernier message: 24/04/2006, 19h56
  4. Imprimer la structure d'une base sans code vba
    Par steph141 dans le forum Access
    Réponses: 2
    Dernier message: 06/04/2006, 22h30
  5. [MySQL] Modification des données d'une base par les membres
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/03/2006, 17h25

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