Asked by:
Remove Datasync

Question
-
I used datasync as a backup solution for my Azure db before there was a backup support in Azure but now I would like to remove all datasync tables,sp, triggers, etc.
Why? Well it seems I must remove data sync due to the bacdac restore on the local db does not work with the datasync triggers. This is the error:
Error SQL72014: .Net SqlClient Data Provider: Msg 195, Level 15, State 10, Procedure ACH_insert_trigger, Line 4 'get_new_rowversion' is not a recognized built-in function name.
Error SQL72014: .Net SqlClient Data Provider: Msg 195, Level 15, State 10, Procedure ACH_insert_trigger, Line 5 'get_new_rowversion' is not a recognized built-in function name.
(Microsoft.SqlServer.Dac)
Another db without datasync restores just fine
How do I delete all the datasync related items?
Would this work? Drop the following tables:
- schema_info
- scope_config
- scope_info
- *_tracking
Friday, November 9, 2012 4:11 AM
All replies
-
if you're referring to SQL Azure Data Sync Service:
remove the database from the Sync group and that should take out all those objects.
if it doesnt work, download the Data Sync Agent and run the deprovisioning utility.
if it's Sync Fx:
used the deprovisioning API
if you want to do it manually, in Data Sync Service, remove all objects with a DSS prefix, including the UDTs (SSMS->Databases->YourDB->Programmability->Types->User-Defined Table Types)
see this post on the different objects added by Provisioning: http://jtabadero.wordpress.com/2010/09/02/sync-framework-provisioning
Friday, November 9, 2012 4:25 AM -
I built my own datasync app based on Microsoft Synch Framework 2.1 (runtime version v2.0.50727)
Where is the Sync group located? I don't recall seeing a sync group
Does the Data Sync Agent work with my runtime version?
Friday, November 9, 2012 5:20 AM -
as i have said, if its Sync Framework, use the Deprovisioning API.
see: How to: Provision and Deprovision Synchronization Scopes and Templates (SQL Server)
Friday, November 9, 2012 5:35 AM -
private void DesaprovicionarServidor(SqlConnection conexionSql, string esquemaMetadataSyncFramework, string prefijoMetadataSyncFramework )
{
SqlSyncScopeDeprovisioning DesaprovicionadorDeAmbito = new SqlSyncScopeDeprovisioning(conexionSql);
DesaprovicionadorDeAmbito.ObjectSchema = esquemaMetadataSyncFramework;
DesaprovicionadorDeAmbito.ObjectPrefix = prefijoMetadataSyncFramework;
DesaprovicionadorDeAmbito.DeprovisionStore();
}- Proposed as answer by Diego Argentina Tuesday, November 13, 2012 7:23 PM
Tuesday, November 13, 2012 7:22 PM