## Kedy použiť Po incidente úložiska, po chybách 823 / 824 alebo podľa plánu údržby – vždy s ohľadom na kapacitu a čas. ## Ako čítať výsledok S `@Execute = 0` sa len zobrazí pripravený príkaz. Po spustení hľadaj chyby v záložke **Messages**; bez chýb nevypíše nič (NO_INFOMSGS). > [!WARNING] > CHECKDB spotrebuje veľa I/O, CPU a tempdb – na veľkej produkčnej databáze ho spúšťaj mimo špičky alebo na obnovenej kópii. `REPAIR_ALLOW_DATA_LOSS` tu zámerne nie je – pred akoukoľvek opravou maj overenú zálohu. **Oprávnenia:** Člen `sysadmin` alebo `db_owner` v cieľovej databáze. **Režim:** DRY RUN (predvolene), po @Execute = 1 náročné na I/O · **Verzia:** SQL Server 2016 – 2022 ## Súvisiace recepty - [Suspect pages](script.php?id=32&s=suspect-pages-evidovane-poskodene-stranky) - [Priebeh BACKUP / RESTORE / DBCC](script.php?id=21&s=priebeh-backup-restore-dbcc)
Skript
DBCC CHECKDB – šablóna s dry-run
Bezpečná šablóna na DBCC CHECKDB jednej databázy: najprv len vypíše príkaz, skutočne ho spustí až po prepnutí @Execute = 1.
Parametre skriptu doplň a kopíruj hotový skript
/* DeadlockCafe | DBCC CHECKDB – šablóna s dry-run
Účel: Bezpečná šablóna na DBCC CHECKDB jednej databázy: najprv len vypíše príkaz, skutočne ho spustí až po prepnutí @Execute = 1.
Režim: DRY RUN (predvolene), po @Execute = 1 náročné na I/O | SQL Server 2016 – 2022, on-premises
*/
SET NOCOUNT ON;
DECLARE @DatabaseName sysname = N'{{DatabaseName}}';
DECLARE @Execute bit = 0; -- zmena na 1 = SKUTOČNÉ spustenie CHECKDB
IF DB_ID(@DatabaseName) IS NULL
THROW 51002, 'Neexistujuca databaza; uprav @DatabaseName.', 1;
DECLARE @sql nvarchar(max) = N'DBCC CHECKDB (' + QUOTENAME(@DatabaseName) + N') WITH NO_INFOMSGS, ALL_ERRORMSGS;';
SELECT @sql AS planned_command, @Execute AS will_execute;
IF @Execute = 1 EXEC sys.sp_executesql @sql;