To enable CDC for all the tables in schema in the Database use the following procedure: 1 – Create the Store Procedure Below:
create procedure sp_enable_disable_cdc_all_tables(@dbname varchar(100), @enable bit, @schemaname varchar(100)) as
BEGIN TRY
DECLARE _name varchar(400)
declare @sql varchar(1000)
DECLARE the_cursor CURSOR FAST_FORWARD FOR
SELECT table_name
FROM INFORMATION_SCHEMA.TABLES where TABLE_CATALOG=@dbname and table_schema=@schemaname and table_name != 'systranschemas'
OPEN the_cursor
FETCH NEXT FROM the_cursor INTO _name
WHILE @@FETCH_STATUS = 0
BEGIN
if @enable = 1
set @sql =' Use '+ @dbname+ ';EXEC sys.sp_cdc_enable_table
_schema = '+@schemaname+',@source_name = '+@source_name+'
, @role_name = NULL,@supports_net_changes = 1'
else
set @sql =' Use '+ @dbname+ ';EXEC sys.sp_cdc_disable_table
_schema = '+@schemaname+',@source_name = '+@source_name+', @capture_instance =''all'''
exec(@sql)
FETCH NEXT FROM the_cursor INTO _name
END
CLOSE the_cursor
DEALLOCATE the_cursor
SELECT 'Successful'
END TRY
BEGIN CATCH
CLOSE the_cursor
DEALLOCATE the_cursor
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH
2 – Execute the Store Procedure above using the command below: