Essayer ce manuscrit : --FNI : Comment rétrécir la notation de transaction du serveur 7.0 de SQL
-- SQL7
http://support.microsoft.com/support/kb/articles/q256/6/50.asp?id=256650&SD-- SQL7
http://www.support.microsoft.com/kb/256650 -- SQL2000
http://support.microsoft.com/kb/272318/en-us-- SQL2005
http://support.microsoft.com/kb/907511/en-us-- choisir le db_name ()
-- choisir * à partir des sysfiles
-- CE MANUSCRIT N'EST PAS PRÉVU POUR L'UTILISATION PROGRAMMÉE ! ! LIRE BOL et les URL ! !
PLACER NOCOUNT DESSUS
DÉCLARER le sysname de @LogicalFileName,
@MaxMinutes international,
@NewSize l'international
-- LE *** VEILLENT À CHANGER LES 3 PROCHAINES LIGNES AVEC VOS CRITÈRES. ***
CHOISIR le @LogicalFileName = ''
, -- Employer sp_helpfile pour identifier le nom de fichier logique que vous voulez pour se rétrécir.
@MaxMinutes = 10, -- Limite à l'heure accordé envelopper la notation.
@NewSize = 305 -- dans le mb
-- Installer/initialiser
DÉCLARER @OriginalSize l'international
CHOISI @OriginalSize = taille -- en pages 8K
Des sysfiles
LÀ OÙ appeler = @LogicalFileName
« Le format document CHOISI de » + db_name () + « NOTATION est » +
CONVERTI (VARCHAR (30), @OriginalSize) + « pages 8K ou » +
CONVERTIR (VARCHAR (30), (@ORIGINALSIZE*8/1024)) + « MB »
Des sysfiles
LÀ OÙ appeler = @LogicalFileName
CRÉER la TABLE DummyTrans
(Char de DummyColumn (8000) non nuls)
-- Envelopper la notation et la tronquer.
DÉCLARER LE @COUNTER INTERNATIONAL,
DATE-HEURE de @StartTime,
@TruncLog VARCHAR (255)
CHOISIR LE @STARTTIME = LE GETDATE (),
@TruncLog = « NOTATION DE SECOURS » + db_name () + « AVEC TRUNCATE_ONLY »
-- Juger un premier rétrécissement.
DBCC SHRINKFILE (LE @LOGICALFILENAME, @NEWSIZE)
EXEC (@TruncLog)
-- Envelopper la notation au besoin.
TANDIS QUE @MaxMinutes > DATEDIFF (MI, @StartTime, GETDATE ()) -- le temps n'a pas expiré
ET @OriginalSize = (taille CHOISIE des sysfiles OÙ nom = @LogicalFileName) -- la notation ne s'est pas rétrécie
ET (@OriginalSize * 8 /1024) > @NewSize -- La valeur a passé dedans pour la nouvelle taille est plus petite que la taille courante.
COMMENCER -- Boucle externe.
CHOISIR le @Counter = 0
TANDIS QUE ((LE @COUNTER <�> COMMENCENT -- mise à jour
INSÉRER les VALEURS de DummyTrans (« notation de suffisance ") -- Puisque c'est un champ de char il insère 8000 bytes.
SUPPRESSION DummyTrans
CHOISIR le @Counter = le @Counter + 1
EXTRÉMITÉ -- mise à jour
EXEC (@TruncLog) -- Voir si un trunc de la notation la rétrécit.
EXTRÉMITÉ -- boucle externe
« La taille finale CHOISIE de » + db_name () + « NOTATION est » +
CONVERTIR (VARCHAR (30), taille) + « les pages 8K ou » +
CONVERTIR (VARCHAR (30), (size*8/1024)) + « MB »
Des sysfiles
LÀ OÙ appeler = @LogicalFileName
LAISSER TOMBER la TABLE DummyTrans
La COPIE « *** exécutent un *** de secours de pleine base de données »
PLACER NOCOUNT AU LOIN