Bonjour
dans firebird 2.xx
j ai une procedure stockee, qui purge des tables
mais ces tables ont des triggers et donc c'est tres long
comment faire en début de procedure pour desactiver ces triggers et les ractiver en fin de la procedure
merci
Version imprimable
Bonjour
dans firebird 2.xx
j ai une procedure stockee, qui purge des tables
mais ces tables ont des triggers et donc c'est tres long
comment faire en début de procedure pour desactiver ces triggers et les ractiver en fin de la procedure
merci
Salut
Comme ceci avec un execute statement:
Code:
1
2EXECUTE STATEMENT 'ALTER TRIGGER TON_TRIGGER INACTIVE';
@+ Claudius
Oui c'est ça ! dans tes PS tu peux construire ton instruction SQL dynamiquement en fonction de tes paramètres en entrée et/ou variables locales.
Voici une procédure permettant de recalculer la selectivité de tous les index
Code proposé par Philippe Makowski sur son blog.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 SET TERM ^; CREATE PROCEDURE SP_CALCSELECTIVITY AS DECLARE VARIABLE IDX VARCHAR(50); DECLARE VARIABLE STMT VARCHAR(75); BEGIN FOR SELECT RDB$INDEX_NAME FROM RDB$INDICES INTO :IDX DO BEGIN STMT = 'SET STATISTICS INDEX ' || :IDX; EXECUTE STATEMENT :STMT; END END ^ SET TERM ;^
@+ Claudius
Les modifications apportées à la structure de la base de données sont enregistrées dans les tables systèmes et leur nombre est limité à 256 fois alors n'oublie pas de faire un backup/restaure avant d'atteindre cette limite.