Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I've used Montago's solution, but converted it to SQL code which did the job for me. Be free to use it, I hope it helps you :)</p> <pre><code>USE DatabaseName GO DECLARE @sqlDrop VARCHAR(1000) SET @sqlDrop = 'IF EXISTS (SELECT * FROM #table# WHERE object_id = OBJECT_ID(''#name#'')) DROP #what# #name#' DECLARE @sqlCommand VARCHAR(1000) DECLARE @id INT SET @id = 0 DECLARE @name SYSNAME DECLARE @prev INT WHILE 1 = 1 BEGIN /* find traces of synchronization */ -- to be sure that id changed SET @prev = @id -- get the next table SELECT TOP 1 @id = object_id, @name = name FROM sys.tables WHERE object_id &gt; @id ORDER BY object_id -- confirm that there is next table IF @id = @prev BREAK /* remove traces of synchronization */ -- remove table SET @sqlCommand = @sqlDrop SET @sqlCommand = REPLACE(@sqlCommand, '#table#', 'sys.tables') SET @sqlCommand = REPLACE(@sqlCommand, '#name#', @name + '_tracking') SET @sqlCommand = REPLACE(@sqlCommand, '#what#', 'TABLE') EXEC (@sqlCommand) -- remove triggers SET @sqlCommand = @sqlDrop SET @sqlCommand = REPLACE(@sqlCommand, '#table#', 'sys.triggers') SET @sqlCommand = REPLACE(@sqlCommand, '#name#', @name + '_delete_trigger') SET @sqlCommand = REPLACE(@sqlCommand, '#what#', 'TRIGGER') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_delete_trigger', '_insert_trigger') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_insert_trigger', '_update_trigger') EXEC (@sqlCommand) -- remove stored procedures SET @sqlCommand = @sqlDrop SET @sqlCommand = REPLACE(@sqlCommand, '#table#', 'sys.procedures') SET @sqlCommand = REPLACE(@sqlCommand, '#name#', @name + '_delete') SET @sqlCommand = REPLACE(@sqlCommand, '#what#', 'PROCEDURE') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_delete', '_deletemetadata') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_deletemetadata', '_insert') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_insert', '_insertmetadata') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_insertmetadata', '_selectchanges') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_selectchanges', '_selectrow') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_selectrow', '_update') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_update', '_updatemetadata') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_updatemetadata', '_bulkdelete') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_bulkdelete', '_bulkinsert') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, '_bulkinsert', '_bulkupdate') EXEC (@sqlCommand) END -- remove scope and schema tables SET @sqlCommand = @sqlDrop SET @sqlCommand = REPLACE(@sqlCommand, '#table#', 'sys.tables') SET @sqlCommand = REPLACE(@sqlCommand, '#name#', 'schema_info') SET @sqlCommand = REPLACE(@sqlCommand, '#what#', 'TABLE') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, 'schema_info', 'scope_config') EXEC (@sqlCommand) SET @sqlCommand = REPLACE(@sqlCommand, 'scope_config', 'scope_info') EXEC (@sqlCommand) </code></pre> <p>This, as you can see goes through all the tables and try to find traces of syncing. You just need to change the database name (first line). Also, if you want to be safer with what you delete, use this code to find tables:</p> <pre><code> -- get the next table SELECT TOP 1 @id = object_id, @name = REPLACE(name, '_tracking', '') FROM sys.tables WHERE object_id &gt; @id AND name LIKE '%_tracking' ORDER BY object_id </code></pre> <p>This will only look for tables that are actually being synchronized</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload