परिदृश्य:
आप SQL सर्वर DBA या डेवलपर के रूप में काम कर रहे हैं, आपको स्क्रिप्ट लिखने की आवश्यकता है जिसका उपयोग आप डेटाबेस में सभी तालिकाओं पर परिवर्तन डेटा कैप्चर (CDC) को सक्षम करने के लिए कर सकते हैं या कुछ विशिष्ट तालिकाओं पर सक्षम कर सकते हैं।नीचे दी गई स्क्रिप्ट हो सकती है चयनित तालिकाओं के डेटाबेस में सभी तालिका में परिवर्तन डेटा कैप्चर को सक्षम करने के लिए उपयोग किया जाता है। आप अपनी पसंद की टेबल को शामिल या बाहर करने के लिए क्वेरी को बदल सकते हैं।
/*------------------------------------------------ Enable CDC on Set of Tables ( To Enable CDC on Table , CDC Should be enabled on Database level) --------------------------------------------------*/ USE [DatabaseName] GODECLARE @TableName VARCHAR(100)DECLARE @TableSchema VARCHAR(100)DECLARE CDC_Cursor CURSOR FOR SELECT * FROM ( SELECT 'T' AS TableName,'dbo' AS TableSchema UNION ALL SELECT 'T2' AS TableName,'dbo' AS TableSchema --IF want to Enable CDC on All Table, then use --SELECT Name,SCHEMA_NAME(schema_id) AS TableSchema --FROM sys.objects --WHERE type = 'u' -- AND is_ms_shipped <> 1 ) CDCOPEN CDC_CursorFETCH NEXT FROM CDC_Cursor INTO @TableName,@TableSchemaWHILE @@FETCH_STATUS = 0 BEGIN DECLARE @SQL NVARCHAR(1000) DECLARE @CDC_Status TINYINT SET @CDC_Status=(SELECT COUNT(*) FROM cdc.change_tables WHERE Source_object_id = OBJECT_ID(@TableSchema+'.'+@TableName)) --IF CDC Already Enabled on Table , Print Message IF @CDC_Status = 1 PRINT 'CDC is already enabled on ' +@TableSchema+'.'+@TableName + ' Table' --IF CDC is not enabled on Table, Enable CDC and Print Message IF @CDC_Status <> 1 BEGIN SET @SQL='EXEC sys.sp_cdc_enable_table @source_schema = '''+@TableSchema+''', @source_name = ''' + @TableName + ''', @role_name = null;' EXEC sp_executesql @SQL PRINT 'CDC enabled on ' +@TableSchema+'.'+ @TableName + ' Table successfully' END FETCH NEXT FROM CDC_Cursor INTO @TableName,@TableSchema END CLOSE CDC_Cursorसे अगला फ़ेच करेंDEALLOCATE CDC_Cursor