Précédent   Forum des professionnels en informatique > Bases de données > Sybase
Sybase Forum sur la base de données Sybase. Avant de poster -> F.A.Q Sybase, Tutoriels Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/06/2006, 19h41   #1
Invité de passage
 
Inscription : mai 2005
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 2
Points : 1
Points : 1
Par défaut [ASE]administration Sybase (vider, recuperer liste des clés)

bonjour,

j'ai pas mal parcouru le forum, les faq et tout ... et sauf erreur je n'ai pas trouvé la reponse aux problemes suivants:

je souhaiterais vider completement la base sans l'effacer (donc pas de drop database).
j'ai 50 tables, je fais des tests dessus, je modifie souvent, donc 50 drop table, c'est pas cool non plus surtout qu'apparemment il faut effacer les cles avant.

l'autre requete est : obtenir la liste des cles de toute la base

enfin, comment effacer toutes les clefs rapidement?

j'imagine que je ne suis pas le premier a etre confronté a cette problematique, mais pour trouver l'info, meme dans la doc sybase...dur, dur
merci pour votre aide precieuse!

Lud
ludwig82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 09h49   #2
Invité de passage
 
Inscription : mai 2005
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 2
Points : 1
Points : 1
hello!

je me disais qu'il y avait des gens calés sur ce forum, please, help me!
many thanks!

LC
ludwig82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/06/2006, 10h53   #3
Membre à l'essai
 
Inscription : février 2006
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 28
Points : 20
Points : 20
Salut !
3 solutions:
1/Je te conseille de trouver un utilitaire qui peu t'extraire la structure de la base (script SQL de suppression et de création des tables) par exemple DBArtisant en version démo (http://www.embarcadero.com/downloads...ddbartisan.jsp)
Cela te permettrait de supprimer puis de créer et tes tables dès que t'en a besoin

2/ Supprime toutes tes données une fois pour toute (fastidieux la première fois mais ce sera fait une fois pour toute) puis fait un dump que tu rechargeras dès que tu auras besoin de ta base vide

3/Supprimes toutes les clés étrangères (Foreign Keys) , fais un truncate de tes tables puis recrée les Foreign Keys
Justement pour ce dernier point tu verras que DB Artisant te sera très utile mais attention c'est une version démo limité à 15 jours.

Ce sont trois méthodes que je te propose mais il existe sûrement d'autres méthodes pour le faire.
Attendons les propositions des "collègues".
SQL972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2006, 11h41   #4
Membre à l'essai
 
Inscription : février 2006
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 28
Points : 20
Points : 20
Voici un script qui peu générer la suppression création des Foreigns keys.
C'est du 'vite fait' que tu devras OPTIMISER D'URGENCE mais bon je ne vais pas te macher tout le travail

/******************************************************************************************************
* Attention !!!!!! : script à OPTIMISER par une PROCEDURE STOCKEE car elle ne prend le cas que des
* FOREIGN KEYS portrant sur 4 colonnes MAXI (il peu y en avoir jusqu'à 16 !!!! mais bon c'est rare
* Il faudrait passer par un curseur + table temporaire pour éviter la redondance du code du type :
* (
* select "," + col.name
* from sysobjects as tab,
* syscolumns as col
* where tab.id = col.id
* and col.id = frk.tableid
* and col.colid = ....
*
* )
* code qui est optimisé à 0%
* SQL972 le 20/06/2006
*******************************************************************************************************/

/*******************************/
/* GENERATION DES SUPPRESSIONS */
/*******************************/

select "ALTER TABLE " + object_name(frk.tableid) + " DROP CONSTRAINT " + object_name(frk.constrid) from sysreferences frk



/*******************************/
/* GENERATION DES CREATIONS */
/*******************************/

select " ALTER TABLE " +
object_name(frk.tableid) +
" ADD CONSTRAINT "+
object_name(frk.constrid) +
" FOREIGN KEY ("
+
(
select col.name
from sysobjects as tab,
syscolumns as col
where tab.id = col.id
and col.id = frk.tableid
and col.colid = frk.fokey1

)
+
(
select "," + col.name
from sysobjects as tab,
syscolumns as col
where tab.id = col.id
and col.id = frk.tableid
and col.colid = frk.fokey2

)
+
(
select "," + col.name
from sysobjects as tab,
syscolumns as col
where tab.id = col.id
and col.id = frk.tableid
and col.colid = frk.fokey3

)
+
(
select "," + col.name
from sysobjects as tab,
syscolumns as col
where tab.id = col.id
and col.id = frk.tableid
and col.colid = frk.fokey4

)
+
") REFERENCES "
+
object_name(frk.reftabid)
+
" ("
+
(
select col.name
from sysobjects as tab,
syscolumns as col
where tab.id = col.id
and col.id = frk.tableid
and col.colid = frk.refkey1

)
+

(
select "," + col.name
from sysobjects as tab,
syscolumns as col
where tab.id = col.id
and col.id = frk.tableid
and col.colid = frk.refkey2

)
+

(
select "," + col.name
from sysobjects as tab,
syscolumns as col
where tab.id = col.id
and col.id = frk.tableid
and col.colid = frk.refkey3

)
+

(
select "," + col.name
from sysobjects as tab,
syscolumns as col
where tab.id = col.id
and col.id = frk.reftabid
and col.colid = frk.refkey4

)
+")"

from sysreferences frk
SQL972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2006, 17h42   #5
Membre à l'essai
 
Inscription : février 2006
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 28
Points : 20
Points : 20
Bon OK là voila en procédure stockée;
Crée tous les ordres de suppression puis de création des Foreigns keys

ps: prend maintenant en charge les FOREIGN KEYS portrant sur 16 colonnes maxi (ASE 12.5)
Fichiers attachés
Type de fichier : zip PS_FOREIGN_KEYS.zip (1,5 Ko, 6 affichages)
SQL972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 14h46   #6
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
En 12.5 on peut utiliser ddlgen pour extraire cette information.

Il y a aussi des freeware (p.ex. dbschema.pl - voir http://www.midsomer.org) qui permet de faire une bonne partie du travail.

Michael
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h19.


 
 
 
 
Partenaires

Hébergement Web