January 28, 2014 7:00 am
Hi Folks,
In this article we are going to cover 3 types of Comparing Database A. Compare Database.
In this post we are going to discuss following points:
- Problem Statement of SQL Script:
- Description of SQL Script:
- SQL Script Output Column
- Input Parameter of SQL Script
- SQL Script Code
- SQL Script Output Screenshot
- User Level to execute
Compare database.
This script compares the table schemas between two SQL Server databases and gives the report for missing columns , data type mismatch , length & precision mismatch and Collation Mismatch.
@Sourcedb sysname ,@Destdb sysname ,@Tablename sysname
DECLARE @Sourcedb SYSNAME DECLARE @Destdb SYSNAME DECLARE @Tablename SYSNAME DECLARE @SQL VARCHAR(max) SELECT @Sourcedb = 'BenEngine' SELECT @Destdb = 'BenEngine17Aug' SELECT @Tablename = 'npsbenefitCode' -- '%' for all tables SELECT @SQL = ' SELECT Tablename = ISNULL(Source.tablename,Destination.tablename) ,ColumnName = ISNULL(Source.Columnname,
Destination.Columnname)
,Source.Datatype
,Source.Length
,Source.precision
,Destination.Datatype
,Destination.Length
,Destination.precision
,[Column] =
Case
When Source.Columnname IS NULL then
''Column Missing in the Source''
When Destination.Columnname IS NULL then
''Column Missing in the Destination''
ELSE ''''
end
,DataType = CASE WHEN Source.Columnname IS NOT NULL
AND Destination.Columnname IS NOT NULL
AND Source.Datatype <> Destination.
Datatype THEN ''Data Type mismatch''
END
,Length = CASE WHEN Source.Columnname IS NOT NULL
AND Destination.Columnname IS NOT NULL
AND Source.Length <> Destination.
Length THEN ''Length mismatch''
END
,Precision = CASE WHEN Source.Columnname IS NOT NULL
AND Destination.Columnname IS NOT NULL
AND Source.precision <> Destination.
precision THEN ''precision mismatch''
END
,Collation = CASE WHEN Source.Columnname IS NOT NULL
AND Destination.Columnname IS NOT NULL
AND ISNULL(Source.collation_name,'''')
<> ISNULL(Destination.collation_name,'''') THEN ''Collation mismatch'' END FROM ( SELECT Tablename = so.name , Columnname = sc.name , DataType = St.name , Length = Sc.max_length , precision = Sc.precision , collation_name = Sc.collation_name FROM ' + @Sourcedb + '.SYS.objects So JOIN ' + @Sourcedb + '.SYS.columns Sc ON So.object_id = Sc.object_id JOIN ' + @Sourcedb + '.SYS.types St ON Sc.system_type_id = St.system_type_id AND Sc.user_type_id = St.user_type_id WHERE SO.TYPE =''U'' AND SO.Name like ''' + @Tablename + ''' ) Source FULL OUTER JOIN ( SELECT Tablename = so.name , Columnname = sc.name , DataType = St.name , Length = Sc.max_length , precision = Sc.precision , collation_name = Sc.collation_name FROM ' + @Destdb + '.SYS.objects So JOIN ' + @Destdb + '.SYS.columns Sc ON So.object_id = Sc.object_id JOIN ' + @Destdb + '.SYS.types St ON Sc.system_type_id = St.system_type_id AND Sc.user_type_id = St.user_type_id WHERE SO.TYPE =''U'' AND SO.Name like ''' + @Tablename + ''' ) Destination ON source.tablename = Destination.Tablename AND source.Columnname = Destination.Columnname ' EXEC (@Sql)
200
Hope you will like 3 types of Comparing Database A. Compare Database.
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 :
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
Posted by Vishal Pawar
Categories: Link, Microsoft SQL Server, MSBI, Optimization, Query, Script, SQL Mentalist, SQL PraRup, SQL Query, SQL Server, Technology,, TSQL, Vishal Pawar
Tags: DBA, Fast SQL, Microsoft SQL Server, SQL Help, SQL Mentalist, SQL Script, SQL Server, SQL Server 2008 R2, SQL Server 2012, SQL tips, SQL Tricks, TSQL, Vishal Pawar
Mobile Site | Full Site
Get a free blog at WordPress.com Theme: WordPress Mobile Edition by Alex King.