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

Sybase Discussion :

[sybase] Suppression de tables par lot


Sujet :

Sybase

  1. #1
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut [sybase] Suppression de tables par lot
    Bonjour à tous,
    je souhaiterais pouvoir supprimer automatiquement un ensemble de tables qui commencent toutes par les trois mêmes caractères , par exemple TMP
    J'ai essayé sans conviction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DROP TABLE (select table_name from systable where table_name like 'TMP%')
    qui a évidemment déclenché une "syntax error".

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Delete from systable where table_name like 'TMP%'
    mais ce n'est pas autorisé, même connecté en dba

    je pourrais bien sûr me palucher les lignes avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    drop table TMP1;
    drop table TMP2
    ....
    mais des tables similaires sont susceptibles de réapparaître avec des noms différents (la partie du nom derrière TMP est aléatoire) et je ne pourrais pas réutiliser mon code.

    Quelqu'un a-t-il une solution ?
    7 fois à terre, 8 fois debout

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    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
     
    declare cur cursor for
    select name from sysobjects where type='U' and name like 'TMP%'
    for update
     
    declare @v varchar(255)
     
    open cur
     
    fetch cur into @v
    while @@sqlstatus <> 0
    begin
    select @v = 'drop table '+@v
    execute (@v)
    fetch cur into @v
    end
     
    close cur
    deallocate cursor cur
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut
    Merci beaucoup
    7 fois à terre, 8 fois debout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] insérer des enregistrements dans une table par lot
    Par dreamover dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/06/2009, 08h59
  2. suppression table par vb
    Par sophiesophie dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2008, 13h12
  3. Suppression de table par une procédure stockée.
    Par Domi63 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/02/2007, 10h27
  4. Réponses: 2
    Dernier message: 12/12/2006, 00h22
  5. Comment obtenir la description des tables par SQL
    Par rcastaldi dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 15/03/2004, 14h13

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