Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

TSQL - DBCC SHRINKFILE depuis une SP..

1 réponse
Avatar
Chris V.
Bonjour,

J'ai un petit probleme avec une SP de maintenance.

J'ai une DB "d'admin" qui contient toutes mes SP de maintenance, aisni
qu'une table de stockage des parametres. J'utilise ces SP pour operer des
operation telles que log shipping, etc etc.

Mon probleme est le suivant : Depuis une SP de cette DB, j'essaie de
"shrinker" un fichier d'une autre. Mon problme : DBCC ne fonctionne que sur
la DB sur laquelle la session est connectee... et USE <DB> ne fonctionne pas
dans une SP. (est <DBName>.dbo.DBCC est impossible.

Comment pourrais je faire ??

Merci,
Chris

--
______________________________________________
It's still better that if it would have been worst, isn't it ?
C'est toujours mieux que si c'etait pire !

1 réponse

Avatar
Fred BROUARD
bonjour

Chris V. a écrit:
Bonjour,

J'ai un petit probleme avec une SP de maintenance.

J'ai une DB "d'admin" qui contient toutes mes SP de maintenance, aisni
qu'une table de stockage des parametres. J'utilise ces SP pour operer des
operation telles que log shipping, etc etc.

Mon probleme est le suivant : Depuis une SP de cette DB, j'essaie de
"shrinker" un fichier d'une autre. Mon problme : DBCC ne fonctionne que sur
la DB sur laquelle la session est connectee... et USE <DB> ne fonctionne pas
dans une SP. (est <DBName>.dbo.DBCC est impossible.

Comment pourrais je faire ??



Implémentez une procédure du genre :

***********************

CREATE PROCEDURE P_ADMIN_DBCC_SHRINK @FILE_ID INT,
@MAX_SIZE INT,
@SPEC INT
AS

IF @FILE_ID IS NULL
OR @MAX_SIZE IS NULL
OR @SPEC IS NULL
RETURN

CASE @SPEC
WHEN 1 THEN DBCC SHRINKFILE (@FILE_ID, @MAX_SIZE, EMPTYFILE)
WHEN 2 THEN DBCC SHRINKFILE (@FILE_ID, @MAX_SIZE, NOTRUNCATE)
WHEN 3 THEN DBCC SHRINKFILE (@FILE_ID, @MAX_SIZE, TRUNCATEONLY)
END

***********************

Dans toutes les bases de données visées.

Dans votre base de données d'admin et votre code pilotant les opérations de
maintenances, appellez de la sorte vos SP :

EXECUTE MaBase.dbo.P_ADMIN_DBCC_SHRINK 1, 1800, 3

et voila

A +


Merci,
Chris




--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************