Home > Link, Microsoft SQL Server, MSBI, Optimization, Query, Script, SQL Mentalist, SQL PraRup, SQL Query, SQL Server, Technology,, TSQL, Vishal Pawar > BI SQL # 265 : SQL Server DBA Scripts : Compare Data Table

BI SQL # 265 : SQL Server DBA Scripts : Compare Data Table

Hi Folks,

In this article we are going to cover How to Compare Data Table.

In this post we are going to discuss following points:

  • Problem Statement of SQL Script:
  • Description of SQL Script:
  • Input Parameter of SQL Script
  • SQL Script Code
  • User Level to execute

    Problem Statement of SQL Script:

    How to Compare Data Table?

    Description of SQL Script:

    This script will Compare Data Table.

    Input Parameter of SQL Script

    :FirstDatabasename(@Db1)

    :SecondDatabasename(@Db1)

    :Schemaname(@SchemaName)

    :Tablename(@TableName)

    SQL Script Code

    IF OBJECT_ID('sp_CompareTable') IS NOT NULL
        DROP PROC sp_CompareTable
    GO
    
    CREATE PROC sp_CompareTable (
        @Db1 VARCHAR(250)
        ,@Db2 SYSNAME
        ,@SchemaName SYSNAME = 'dbo'
        ,@TableName SYSNAME
        )
    AS
    DECLARE @reason VARCHAR(7) = 'Missing';
    DECLARE @linkedserver SYSNAME;
    
    IF CHARINDEX('.', @db1, 1) <> 0
        SET @Db1 = QUOTENAME(SUBSTRING(@db1, 1, CHARINDEX('.', @db1, 1) 
                    - 1)) + '.' + QUOTENAME(SUBSTRING(@db1, CHARINDEX(
                        '.', @db1, 1) + 1, DATALENGTH(@db1) - CHARINDEX
                    ('.', @db1, 1)))
    
    IF CHARINDEX('.', @Db2, 1) <> 0
        SET @Db2 = QUOTENAME(SUBSTRING(@Db2, 1, CHARINDEX('.', @Db2, 1) 
                    - 1)) + '.' + QUOTENAME(SUBSTRING(@Db2, CHARINDEX(
                        '.', @Db2, 1) + 1, DATALENGTH(@Db2) - CHARINDEX
                    ('.', @Db2, 1)))
    
    PRINT @db1
    
    EXEC (
            'select * from  
    (SELECT * FROM ' + @db1 + '.' + 
            @SchemaName + '.' + @TableName + 
            '  
    EXCEPT 
    SELECT * FROM ' + @db2 + '.' + @SchemaName + 
            '.' + @TableName + ') T 
    Cross Join (SELECT ''' + @reason 
            + ' in ' + @db2 + '.' + @SchemaName + '.' + @TableName + 
            ''' Reason)T2 
    Union ALL 
    select * from  
    (SELECT * FROM ' 
            + @db2 + '.' + @SchemaName + '.' + @TableName + 
            '  
    EXCEPT 
    SELECT * FROM ' + @db1 + '.' + @SchemaName + 
            '.' + @TableName + ' ) T Cross Join (SELECT ''' + @reason + 
            ' in ' + @db1 + '.' + @SchemaName + '.' + @TableName + 
            ''' Reason)T2'
            )
    GO

    User Level to execute

    300

    Hope you will like How to Compare Data Table.

    If you really like reading my blog and understood at least few thing then please don’t forget to subscribe my blog.

If you want daily link and analysis or interesting link go to following website which will give @ your inbox please subscribe our following link resource blog :

Link Resource Website

For More information related to BI World visit my Mentalist Blog

SQL Server Mentalist >> SQL Learning Blog

Business Intelligence Mentalist >> BI World

Infographic Mentalist >> Image worth explaining thousand Words

Microsoft Mentalist >> MVC,ASP.NET, WCF & LinQ

DBA Mentalist >>Advance SQL Server Blog

Microsoft BI Mentalist >> MS BI Development Update

Connect With me on

| FaceBook |Twitter | linkedIn| Google+ | WordPress | RSS |

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: