Próbować ten Pismo: --INF: Dlaczego The SQL Serwer 7.0 Transakcja Bela
-- 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-- wybrany db_name ()
-- wybiórka * od sysfiles
-- TEN PISMO ZAMIERZAĆ DLA DOŁĄCZONY UŻYCIE!! CZYTAĆ BOL i the urls!!
USTAWIAĆ NOCOUNT DALEJ
OZNAJMIAĆ @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
-- *** UPEWNIAĆ SIĘ THE NASTĘPNY 3 LINIA Z TWÓJ KRYTERIUM. ***
WYBRANY @LogicalFileName = ''
, -- Używać sp_helpfile the logiczny kartoteka - wymieniać że ty chcieć.
@MaxMinutes = 10, -- Ograniczenie na czas pozwolić bela.
@NewSize = 305 -- w MB
-- Tworzyć/initialize
OZNAJMIAĆ @OriginalSize int
WYBIÓRKA @OriginalSize = rozmiar -- w 8K strona
OD sysfiles
DOKĄD wymieniać = @LogicalFileName
WYBIÓRKA "Oryginał Rozmiar" + db_name () + "BELA być" +
KONWERTYTA (VARCHAR (30), @OriginalSize) + "8K strona lub" +
NAWRACAĆ (VARCHAR (30), (@ORIGINALSIZE*8/1024)) + "MB"
OD sysfiles
DOKĄD wymieniać = @LogicalFileName
TWORZYĆ STOŁOWY DummyTrans
(DummyColumn char (8000) nieobowiązujący)
-- Zawijać bela i ścinać wierzchołek ono.
OZNAJMIAĆ @COUNTER INT,
@StartTime DATETIME,
@TruncLog VARCHAR (255)
WYBRANY @STARTTIME = GETDATE (),
@TruncLog = "POMOCNICZY BELA" + db_name () + "Z TRUNCATE_ONLY"
-- Próbować początkowy kurczenie się.
DBCC SHRINKFILE (@LOGICALFILENAME, @NEWSIZE)
EXEC (@TruncLog)
-- Zawijać the bela jeżeli konieczny.
PODCZAS GDY @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE ()) -- czas tracić ważność
I @OriginalSize = (WYBRANY rozmiar OD sysfiles DOKĄD imię = @LogicalFileName) -- the bela kurczyć się
I (@OriginalSize * 8 /1024) > @NewSize -- The wartość przechodzić wewnątrz dla nowy rozmiar być mały the aktualny rozmiar.
ZACZYNAĆ -- Zewnętrzny pętla.
WYBRANY @Counter = (0)
PODCZAS GDY ((@COUNTER <�> ZACZYNAĆ -- aktualizacja
WSZYWKA DummyTrans WARTOŚĆ ("Pełnia Bela ") -- Ponieważ ono być char pole ono wkładać 8000 bajt.
DELEATUR DummyTrans
WYBRANY @Counter = @Counter + (1)
KOŃCÓWKA -- aktualizacja
EXEC (@TruncLog) -- Widzieć jeżeli trunc the bela kurczyć się ono.
KOŃCÓWKA -- zewnętrzny pętla
WYBIÓRKA "Finał Rozmiar" + db_name () + "BELA być" +
NAWRACAĆ (VARCHAR (30), rozmiar) + "8K strona lub" +
NAWRACAĆ (VARCHAR (30), (size*8/1024)) + "MB"
OD sysfiles
DOKĄD wymieniać = @LogicalFileName
OPUSZCZAĆ STOŁOWY DummyTrans
DRUK "*** Wykonywać folować baza danych pomocniczy ***"
SET NOCOUNT DALEKO