Home
Manage Your Code
Snippet: Compare Databases in Sql (SQL)
Title: Compare Databases in Sql Language: SQL
Description: compare 2 databases using query analizer (sql studio) Views: 433
Author: Joel Meikle Date Added: 12/23/2008
Copy Code  
/***

  Replace                 with
  [MASTER_DATABASE]       you master database as a base comparison
  [COMPARE_DATABASENAME]  database to compare to

Hint: use the find & replace function on the above

***/

create table #tempdb1 (
	[ObjectName] varchar(128),
	[FieldName] varchar (128),
	[dataType] varchar(128),
	[Is_Nullable] varchar(3),
	[FieldSize] int,
	[CollationName] varchar(128)
	)
GO

insert into #tempdb1 

select DB1.[TABLE_NAME], DB1.[COLUMN_NAME], DB1.[DATA_TYPE],
  DB1.[IS_NULLABLE], DB1.[CHARACTER_MAXIMUM_LENGTH], DB1.[COLLATION_NAME]
FROM [MASTER_DATABASE].INFORMATION_SCHEMA.COLUMNS AS DB1
GO

-- SELECT * FROM #tempdb1

-- drop table #tempdb1


create table #tempdb2 (
	[ObjectName] varchar(128),
	[FieldName] varchar (128),
	[dataType] varchar(128),
	[Is_Nullable] varchar(3),
	[FieldSize] int,
	[CollationName] varchar(128)
	)
GO

insert into #tempdb2

select DB1.[TABLE_NAME], DB1.[COLUMN_NAME], DB1.[DATA_TYPE],
  DB1.[IS_NULLABLE], DB1.[CHARACTER_MAXIMUM_LENGTH], DB1.[COLLATION_NAME]
FROM [COMPARE_DATABASENAME].INFORMATION_SCHEMA.COLUMNS AS DB1
GO

-- select * from #tempdb2


-- now compare the two, db1 should be the master (most recent database).

SELECT DB1.ObjectName, DB1.FieldName, DB1.dataType as DB1_dataType, DB2.dataType as DB2_dataType,
DB1.Is_Nullable, DB1.FieldSize AS DB1_Size, DB2.FieldSize AS DB2_Size,
DB1.CollationName AS DB1_Colat, DB2.CollationName AS DB2_Colat
FROM #tempdb1 AS DB1
LEFT JOIN #tempdb2 AS DB2
ON DB1.ObjectName = DB2.ObjectName
	AND
   DB1.FieldName = DB2.FieldName
WHERE DB2.ObjectName Is Null 
  OR DB2.FieldName Is Null
  OR DB1.dataType <> DB2.dataType
  OR DB1.CollationName <> DB2.CollationName

GO

/** run this to clean up when done

drop table #tempdb1
drop table #tempdb2
GO

**/
Usage
paste into sql pane, replace values & execute
Notes
will display list of results for schema differences