我正在一个项目中,我需要自动运行一个插入语句来插入结果集-问题是我需要它从SQL Server转到DB2服务器。我无法创建文件或脚本,然后将其导入或在另一端运行。我需要从SQL Server端插入或更新DB2端。
这可能吗?我需要它作为SQL Server存储过程的一部分单独运行。
答案 0 :(得分:1)
您正在寻找linked server feature。
通常将链接的服务器配置为使数据库引擎能够执行Transact-SQL语句,该语句包括SQL Server的另一个实例或另一个数据库产品(如Oracle)中的表。可以将许多类型的OLE DB数据源配置为链接服务器,包括Microsoft Access和Excel。链接服务器具有以下优点:
- 从SQL Server外部访问数据的能力。
- 能够在整个企业的异构数据源上发布分布式查询,更新,命令和事务。
- 类似地处理各种数据源的能力。
(我相信大多数主要的RDBMS都具有类似的功能)
在大多数情况下,这实际上使您可以将其他数据库中的表或源当作SQL Server实例的一部分来处理-INSERT
语句应只适用于“通常”。
答案 1 :(得分:1)
如前所述,您可以在SQL Server端使用链接服务器在两个服务器之间执行操作。我从SQL Server在DB2上运行DML并没有做很多事情,但是从我的经验来看,对于使用OLE DB连接将数据从DB2提取到SQL Server的事务,SSIS的性能远胜于链接服务器。您可以在SSIS here中阅读有关OLE DB连接的更多信息,并且您想参考用于特定DB2类型(大型机,LUW等)的DB2文档,该文档用于在此处设置连接的详细信息。如果您设置SSIS目录,则可以使用SQL Server存储过程来运行程序包,您可以直接使用它们,也可以从现有的用户存储过程中执行。