How to remove SQL Azure Data Sync objects manually

前端 未结 5 1793
梦谈多话
梦谈多话 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:33

    There is an article on msgooroo.com:

    https://msgooroo.com/GoorooTHINK/Article/15141/Removing-SQL-Azure-Sync-objects-manually/5215

    Essentially the script is as follows:

    -- Triggers
    DECLARE @TRIGGERS_SQL VARCHAR(MAX) = (
        SELECT
            'DROP TRIGGER [' + SCHEMA_NAME(so.uid) + '].[' +  [so].[name] + '] ' 
            FROM sysobjects AS [so]
            INNER JOIN sysobjects AS so2 ON so.parent_obj = so2.Id
            WHERE   [so].[type] = 'TR'
            AND     [so].name LIKE '%_dss_%_trigger'
        FOR XML PATH ('')
    )
    PRINT @TRIGGERS_SQL
    IF LEN(@TRIGGERS_SQL) > 0
    BEGIN
        EXEC (@TRIGGERS_SQL)
    END     
    
    
    -- Tables
    DECLARE @TABLES_SQL VARCHAR(MAX) = (
        SELECT
            'DROP TABLE [' + table_schema + '].[' + table_name + '] ' 
        FROM 
            information_schema.tables where table_schema = 'DataSync' 
        FOR XML PATH ('')
    )
    PRINT @TABLES_SQL
    IF LEN(@TABLES_SQL) > 0
    BEGIN
        EXEC (@TABLES_SQL)
    END    
    
    -- Stored Procedures
    DECLARE @PROC_SQL VARCHAR(MAX) = (
        SELECT 'DROP PROCEDURE [' + routine_schema + '].[' + routine_name + '] ' 
        FROM    INFORMATION_SCHEMA.ROUTINES where ROUTINE_SCHEMA = 'DataSync' and routine_type = 'PROCEDURE'
        FOR XML PATH ('')
    )
    PRINT @PROC_SQL
    IF LEN(@PROC_SQL) > 0
    BEGIN
        EXEC (@PROC_SQL)
    END    
    
    
    -- Types
    DECLARE @TYPE_SQL VARCHAR(MAX) = (
      SELECT
      'DROP TYPE [' + SCHEMA_NAME(so.uid) + '].[' + [so].[name] + '] ' 
      FROM systypes AS [so]
      where [so].name LIKE '%_dss_bulktype%'
      AND SCHEMA_NAME(so.uid) = 'Datasync'
      FOR XML PATH ('')
    )
    PRINT @TYPE_SQL
    IF LEN(@TYPE_SQL) > 0
    BEGIN
      EXEC (@TYPE_SQL)
    END    
    
    
    -- Schema
    DROP SCHEMA DataSync    
    

提交回复
热议问题