Försök som detta skrivar: --INF: Hur till hjärnskrynklaren transaktionen för SQL-server 7.0 loggar
-- 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-- välj db_name ()
-- välj * från sysfiles
-- DETTA SKRIVAR ÄMNAS INTE FÖR PLANLAGD ANVÄNDNING!! LÄS BOL och urlsna!!
UPPSÄTTNING NOCOUNT PÅ
FÖRKLARA @LogicalFileNamesysname,
@MaxMinutes INT,
@NewSize INT
-- *** SER TILL ATT ÄNDRA DE NÄSTA 3NA FODRAR MED DINA KRITERIER. ***,
VÄLJ @LogicalFileName = ''
, -- Sp_helpfile bruk att identifiera det logiskt sparar - namnge att du önskar till hjärnskrynklaren.
@MaxMinutes = 10, -- Begränsa tillåtet till sjalen loggar i rätt tid.
@NewSize = 305 -- i MB
-- Ställa in/initialisera
FÖRKLARA @OriginalSize int
VALT @OriginalSize = storleksanpassa -- i sidor 8K
FRÅN sysfiles
VAR känt = @LogicalFileName
Det VALDA ”original storleksanpassar av” + db_name () + ”LOGGAR är” +
OMVÄND (VARCHAR (30), @OriginalSize), + ”sidor 8K eller” +
KONVERTERA (VARCHAR (30), (@ORIGINALSIZE*8/1024)) + ”MB”,
FRÅN sysfiles
VAR känt = @LogicalFileName
SKAPA BORDLÄGGER DummyTrans
((8000) inte ogiltig) DummyColumn röding
-- Sjalen loggar och avkortar den.
FÖRKLARA @COUNTER INT,
@StartTimeDATETIME,
@TruncLog VARCHAR (255)
VÄLJ @STARTTIME = GETDATE (),
@TruncLog = ”RESERVEN LOGGAR” + db_name () + ”MED TRUNCATE_ONLY”,
-- Försök en initial hjärnskrynklare.
DBCC SHRINKFILE (@LOGICALFILENAME, @NEWSIZE),
EXEC (@TruncLog)
-- Sjal logga, om nödvändigt.
STUND@MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE ()) -- tid har inte förfallit
OCH @OriginalSize = (VALT storleksanpassa FRÅN sysfiles VAR känt = @LogicalFileName) -- logga har inte krympt
OCH (@OriginalSize * 8 /1024), > @NewSize -- Värdera passerade för nytt storleksanpassar in är mindre, än strömmen storleksanpassar.
BÖRJA -- Yttre kretsa.
VÄLJ @Counter = 0
STUNDER ((@COUNTER <�> BÖRJAR -- uppdatering
MELLANLÄGGET DummyTrans VÄRDERAR (”påfyllningen loggar”), -- Sätta in den sätter in 8000 byte, därför att det är en röding.
TA BORT DummyTrans
VÄLJ @Counter = @Counter + 1
AVSLUTA -- uppdatering
EXEC (@TruncLog) -- Se om en trunc av loggahjärnskrynklarna det.
AVSLUTA -- yttre kretsa
Den VALDA ”finalen storleksanpassar av” + db_name () + ”LOGGAR är” +
OMVÄND (VARCHAR (30), storleksanpassar), + ”sidor 8K eller” +
KONVERTERA (VARCHAR (30), (size*8/1024)) + ”MB”,
FRÅN sysfiles
VAR känt = @LogicalFileName
TAPPA BORDLÄGGER DummyTrans
TRYCKET ”*** utför en reserv- *** för full databas”,
UPPSÄTTNING NOCOUNT AV