2011-03-01 47 views
1

我们有一组MSSQL数据库服务器,通常在它们之间复制几个数据库。一台服务器是MSSQL 2008年,另一个是2005年MSSQL,最后是MSSQL 2000在复制过程中更改列数据类型

这种情况最近出了问题,我试图那种拼命解决的事情。

我们有一个MSSQL服务器里面,每一个早晨,从我们的Informix服务器接收到Informix数据库的副本,并转储所有的数据到MSSQL服务器上的数据库CompanyInformix。它是这样做的,据我所知,正确无误。

一个小时以后,即SQL服务器推送复制发布到我们的其他两个MSSQL服务器,以及本身,从CompanyInformix推出几个表到CompanyInforbits。

在两台服务器上,这工作正常。但是,在MSSQL 2000服务器上,发生发布时,数据类型“date”的所有列都将更改为数据类型“nvarchar(10)”。这是个问题。

我假设这个问题的根源在于MSSQL2000没有出现到一个“date”数据类型。

这是上周的工作,而我试图重现这是怎么回事,上周有明显出了问题,地方复制。

任何人都可以提出什么可能是想错了,这里我能做些什么来防止复制更改这些列数据类型?

回答

1

是正确的,日期数据类型在SQL Server支持2000

你在这里什么是混合复制拓扑结构,所以你将不得不实施一些微软建议使用这样的工作一个环境。

看看下面的参考:Using Multiple Versions of SQL Server in a Replication Topology

如果您在发布修改数据类型为日期时间,就“应该”能够保持整个拓扑这种数据类型。

+0

当你说“修改在发布的数据类型”你的意思是更改CompanyInformix表中的列的数据类型,或者是有一些方法来改变在出版本身列的数据类型? – Frosty840 2011-03-01 13:11:34

+1

拓扑结构中最重要的SQL Server发布数据库(所有其他人直接或间接订阅的数据库)应使用日期时间数据类型。然后所有订阅也将使用这种数据类型,确保在整个拓扑中始终如一地使用。 – 2011-03-01 13:55:08

+0

好的,谢谢。那么,我必须去和Informix的人谈谈,因为他是导出数据的人。非常感谢。 – Frosty840 2011-03-01 14:28:33