Scenario:
Du arbetar som SQL Server DBA eller utvecklare, du måste skriva skript som du kan använda för att aktivera Change Data Capture (CDC ) på alla tabeller i en databas eller aktivera på vissa specifika tabeller.Nedanstående skript kan vara används för att aktivera Change Data Capture på alla tabeller i en databas med valda tabeller. Du kan ändra frågan så att den inkluderar eller exkluderar de tabeller du gillar.
/*--------------------------- ----------------------------Aktivera CDC på uppsättning tabeller (För att aktivera CDC på tabell, bör CDC vara aktiverat på databasnivå)- ----------------------------------------------------------* /ANVÄND [Databasnamn]GODECLARE @TableName VARCHAR(100)DECLARE @TableSchema VARCHAR(100)DECLARE CDC_Cursor CURSOR FOR SELECT * FROM (VÄLJ 'T' AS TableName,'dbo' AS TableSchema UNION ALL SELECT 'T2' AS TableName,'dbo' AS TableSchema --OM du vill aktivera CDC på All Table, använd sedan --SELECT Name,SCHEMA_NAME(schema_id) AS TableSchema --FROM sys.objects --WHERE type ='u' -- OCH is_ms_shipped <> 1 ) CDCÖPPNA CDC_CursorHÄMTA NÄSTA FRÅN CDC_Cursor INTO @TableName,@TableSchema--OM CDC redan är aktiverad på tabell , skriv ut meddelande IF @CDC_Status =1 SKRIV UT 'CDC är redan aktiverat på ' +@TableSchema+'.'+@TableName + 'Table' --OM CDC inte är aktiverat på tabell, aktivera CDC och Skriv ut meddelande OM @CDC_Status <> 1 BÖRJA SET @SQL='EXEC sys.sp_cdc_enable_table @source_schema ='''+@TableSchema+''', @source_name =''' + @TableName + ''', @role_name =null; ' EXEC sp_executesql @SQL PRINT 'CDC aktiverad på ' +@TableSchema+'.'+ @TableName + 'Tabell framgångsrikt' AVSLUTA HÄMTA NÄSTA FRÅN CDC_Cursor INTO @TableName,@TableSchema ENDCLOSE CDC_Cursor
DEALLOCATE CDC_Cursor