SQL Server compare database difference statement

In SQL Server, you can use the following statement to compare the differences between databases:

  1. Comparison table structure differences:
    -- 对比两个数据库中的表差异
    SELECT
        t1.name AS TableName,
        t1.object_id AS ObjectId,
        CASE WHEN t2.name IS NULL THEN 'Only in Database 1' ELSE 'Different' END AS [Status]
    FROM
        Database1.sys.tables t1
        LEFT JOIN Database2.sys.tables t2 ON t1.name = t2.name
    UNION ALL
    SELECT
        t2.name AS TableName,
        t2.object_id AS ObjectId,
        'Only in Database 2' AS [Status]
    FROM
        Database2.sys.tables t2
        LEFT JOIN Database1.sys.tables t1 ON t2.name = t1.name
    WHERE
        t1.name IS NULL;
    

  2. Comparison table data differences:
    -- 对比两个表的数据差异
    SELECT *
    FROM Database1.dbo.TableName
    EXCEPT
    SELECT *
    FROM Database2.dbo.TableName;
    

  3. Compare stored procedure differences:
    -- 对比两个数据库中的存储过程差异
    SELECT
        p1.name AS ProcedureName,
        p1.object_id AS ObjectId,
        CASE WHEN p2.name IS NULL THEN 'Only in Database 1' ELSE 'Different' END AS [Status]
    FROM
        Database1.sys.procedures p1
        LEFT JOIN Database2.sys.procedures p2 ON p1.name = p2.name
    UNION ALL
    SELECT
        p2.name AS ProcedureName,
        p2.object_id AS ObjectId,
        'Only in Database 2' AS [Status]
    FROM
        Database2.sys.procedures p2
        LEFT JOIN Database1.sys.procedures p1 ON p2.name = p1.name
    WHERE
        p1.name IS NULL;
    

    These sample statements can be modified according to the actual situation, replacing the database name, table name, stored procedure name, etc. with the corresponding object name. Note that these statements only compare object differences and do not take into account detailed definition and attribute differences. If you need more detailed comparison and analysis, you can use specialized tools such as Redgate SQL Compare

Guess you like

Origin blog.csdn.net/qq_23080741/article/details/131292132