DataCompare problem
Brian Donahue
Posts: 6,590 Bronze 1
Hi Daniel,
Thanks for your post. CreateFrom Intersection behaves exactly like the
UI version of SQL Data Compare in that it excludes tables that are
ineligible for a data comparison. You'll need to put a primary key on those
tables before they will be returned in the common tables collection.
Regards,
Brian Donahue
Red Gate Technical Support
"Daniel Modler" <dm@priso.net> wrote in message
news:Ah4mXKGhEHA.1224@server53...
> Hi,
>
> We are evaluating SQL Data Compare and it looks very vell; but we've got a
> problem with a single, very simple table (withouth primary key etc.). The
> table is being "swallowed" by CreateFromIntersection() although it's
exactly
> the same in both databases.
>
> Here is the code snippet ...
>
> provider = New RedGate.SQLDataCompare.Engine.SqlProvider
> db1 = provider.GetDatabase(New
> RedGate.SQLDataCompare.Engine.SqlConnectionProperties(.cboSQL1.Text,
> .txtDatenbank.Text, "sa", "xxxxx"))
>
> db2 = provider.GetDatabase(New
> RedGate.SQLDataCompare.Engine.SqlConnectionProperties(.cboSQL2.Text,
> "DATABASE1", "sa", "xxxxx"))
>
> commonTables =
> RedGate.SQLDataCompare.Engine.Tables.CreateFromIntersection(db1.Tables,
> db2.Tables)
>
> settings = New RedGate.SQLDataCompare.Engine.TableComparisonSettings
>
>
> The table is listed inside db1.Tables() and db2.Tables() with identical
> fields, but not visible inside commonTables()!
>
> Here's the creation script from SQL server for DB #1:
> if exists (select * from dbo.sysobjects where id =
> object_id(N'[TodoZeitraeume]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
> drop table [TodoZeitraeume]
> GO
>
> CREATE TABLE [TodoZeitraeume] (
> [days] [int] NOT NULL ,
> [descr] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
>
>
> DB #2:
> if exists (select * from dbo.sysobjects where id =
> object_id(N'[TodoZeitraeume]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
> drop table [TodoZeitraeume]
> GO
>
> CREATE TABLE [TodoZeitraeume] (
> [days] [int] NOT NULL ,
> [descr] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
>
> Any ideas on what could be wrong?
>
> Regards & Thanks in Advance
>
>
Thanks for your post. CreateFrom Intersection behaves exactly like the
UI version of SQL Data Compare in that it excludes tables that are
ineligible for a data comparison. You'll need to put a primary key on those
tables before they will be returned in the common tables collection.
Regards,
Brian Donahue
Red Gate Technical Support
"Daniel Modler" <dm@priso.net> wrote in message
news:Ah4mXKGhEHA.1224@server53...
> Hi,
>
> We are evaluating SQL Data Compare and it looks very vell; but we've got a
> problem with a single, very simple table (withouth primary key etc.). The
> table is being "swallowed" by CreateFromIntersection() although it's
exactly
> the same in both databases.
>
> Here is the code snippet ...
>
> provider = New RedGate.SQLDataCompare.Engine.SqlProvider
> db1 = provider.GetDatabase(New
> RedGate.SQLDataCompare.Engine.SqlConnectionProperties(.cboSQL1.Text,
> .txtDatenbank.Text, "sa", "xxxxx"))
>
> db2 = provider.GetDatabase(New
> RedGate.SQLDataCompare.Engine.SqlConnectionProperties(.cboSQL2.Text,
> "DATABASE1", "sa", "xxxxx"))
>
> commonTables =
> RedGate.SQLDataCompare.Engine.Tables.CreateFromIntersection(db1.Tables,
> db2.Tables)
>
> settings = New RedGate.SQLDataCompare.Engine.TableComparisonSettings
>
>
> The table is listed inside db1.Tables() and db2.Tables() with identical
> fields, but not visible inside commonTables()!
>
> Here's the creation script from SQL server for DB #1:
> if exists (select * from dbo.sysobjects where id =
> object_id(N'[TodoZeitraeume]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
> drop table [TodoZeitraeume]
> GO
>
> CREATE TABLE [TodoZeitraeume] (
> [days] [int] NOT NULL ,
> [descr] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
>
>
> DB #2:
> if exists (select * from dbo.sysobjects where id =
> object_id(N'[TodoZeitraeume]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
> drop table [TodoZeitraeume]
> GO
>
> CREATE TABLE [TodoZeitraeume] (
> [days] [int] NOT NULL ,
> [descr] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
>
> Any ideas on what could be wrong?
>
> Regards & Thanks in Advance
>
>
This discussion has been closed.
Comments
Thanks for your post. CreateFrom Intersection behaves exactly like the
UI version of SQL Data Compare in that it excludes tables that are
ineligible for a data comparison. You'll need to put a primary key on those
tables before they will be returned in the common tables collection.
Regards,
Brian Donahue
Red Gate Technical Support
"Daniel Modler" <dm@priso.net> wrote in message
news:Ah4mXKGhEHA.1224@server53...
> Hi,
>
> We are evaluating SQL Data Compare and it looks very vell; but we've got a
> problem with a single, very simple table (withouth primary key etc.). The
> table is being "swallowed" by CreateFromIntersection() although it's
exactly
> the same in both databases.
>
> Here is the code snippet ...
>
> provider = New RedGate.SQLDataCompare.Engine.SqlProvider
> db1 = provider.GetDatabase(New
> RedGate.SQLDataCompare.Engine.SqlConnectionProperties(.cboSQL1.Text,
> .txtDatenbank.Text, "sa", "xxxxx"))
>
> db2 = provider.GetDatabase(New
> RedGate.SQLDataCompare.Engine.SqlConnectionProperties(.cboSQL2.Text,
> "DATABASE1", "sa", "xxxxx"))
>
> commonTables =
> RedGate.SQLDataCompare.Engine.Tables.CreateFromIntersection(db1.Tables,
> db2.Tables)
>
> settings = New RedGate.SQLDataCompare.Engine.TableComparisonSettings
>
>
> The table is listed inside db1.Tables() and db2.Tables() with identical
> fields, but not visible inside commonTables()!
>
> Here's the creation script from SQL server for DB #1:
> if exists (select * from dbo.sysobjects where id =
> object_id(N'[TodoZeitraeume]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
> drop table [TodoZeitraeume]
> GO
>
> CREATE TABLE [TodoZeitraeume] (
> [days] [int] NOT NULL ,
> [descr] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
>
>
> DB #2:
> if exists (select * from dbo.sysobjects where id =
> object_id(N'[TodoZeitraeume]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
> drop table [TodoZeitraeume]
> GO
>
> CREATE TABLE [TodoZeitraeume] (
> [days] [int] NOT NULL ,
> [descr] [varchar] (50) COLLATE Latin1_General_CI_AS NOT NULL
> ) ON [PRIMARY]
> GO
>
>
> Any ideas on what could be wrong?
>
> Regards & Thanks in Advance
>
>