2015-04-16 60 views
5

我试图将一些表从一个活动数据库移动到另一个数据库,然后将在数据传输后进行实时生成。第二个数据库存在于2008年的服务器上,迁移是从2012年开始的,这导致了一些问题。从第一个数据库中的第二个数据库更新数据只有在表存在的地方

最初我使用脚本完成了数据库导出。因为导出工具不会转到以前的版本。 - 完全导出后,我删除了db2上多余的表。因为我只有约200人中有40人左右移动。

现在数据库结构已经建立,一切正常。与过时的数据。一旦数据制作完成,一切都准备好了。所以我最好喜欢一个脚本,它检查db1中是否存在db1中的表,然后如果它确实复制了所有行。这可能吗?

+0

,你可以使用'powershell'脚本将其连接到辅助数据库,获得表的列表,然后从现场分贝做'BCP出来'那些表和然后在辅助数据库中使用'bcp in'。一个简单的sql脚本将无法连接到这两个实例,除非您想要通过使用链接的服务器路径 – ughai

回答

1

你需要创建一个返回根据你检查表的结果上DB2的程序:

USE [DB2] 

CREATE PROCEDURE DBO.CHECKDB2TABLE 

@TABLENAME NVARCHAR(50) 

AS 

IF EXISTS (
    SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE (TABLE_NAME = @TABLENAME) 
) 
    BEGIN 
     SELECT 'TRUE' 
    ELSE 
     SELECT 'FALSE' 
    END 

然后用程序来检查DB2,并基于该输出创造条件语句在桌子上复制。

EXEC DB2.dbo.CheckDB2Table @TABLENAME='Tablename' 

谢谢。

+0

进行数据迁移是在SQL Server 2008和SQL Server 2012之间.OP将无法直接调用该过程。 – ughai

+0

因此,数据库在不同的服务器上?在这种情况下,您可以创建链接服务器并配置RPC。然后远程调用它...相同的想法和结果。 –

2

如果创建链接服务器不是一个选项,那么你可以尝试使用sql server导入数据向导将数据从一个数据库传输到另一个数据库。 使用下面的链接了解如何到: Import data easily in sql server

相关问题