How to remove SQL Azure Data Sync objects manually

前端 未结 5 1795
梦谈多话
梦谈多话 2020-12-29 09:48

Having given up on SQL Azure Data Sync for synchronizing data between two SQL Azure databases, how can I remove all the DataSync related objects (tables, triggers etc)?

5条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-29 10:09

    Microsoft released this script a while ago. Handy if you need to remove a single table

    declare @TableName nvarchar(max)
    set @TableName = 'yourTableName'
    --In case you wish to delete objects related to all the tables you can uncomment the following:
    --set @TableName = ''
    
    -- Generate the script to drop Data Sync tables
    select 'drop table [DataSync].['+ st.name+ '];' from sys.tables as st join sys.schemas as ss on ss.schema_id = st.schema_id 
    where ss.name = 'DataSync' and st.name like '%' + @TableName + '_dss_%'
    
    -- Generate the script to drop Data Sync stored procedures
    select 'drop procedure [DataSync].['+ sp.name+ '];' from sys.procedures as sp join sys.schemas as ss on ss.schema_id = sp.schema_id 
    where ss.name = 'DataSync' and sp.name like '%' + @TableName + '_dss_%'
    
    -- Generate the script to delete Data Sync triggers
    select 'drop trigger [' + schema_name(schema_id) + '].[' + name + ']'
    from sys.objects where type = 'TR' and name like '%' + @TableName + '_dss_%'
    
    -- Generate the script to delete Data Sync-related udtt
    select 'drop type  [DataSync].['+ st.name+ '];' from sys.types as st join sys.schemas as ss on st.schema_id = ss.schema_id 
    where ss.name = 'DataSync' and st.name like '%' + @TableName + '_dss_%'
    

提交回复
热议问题