在数据库上运行SQL语句或存储过程时,是否可以连接到外部数据库并从那里提取数据?
类似的东西:
SELECT a.UserID, b.DataIWantToGet
FROM mydb.Users as a, externaldb.Data as b
答案 0 :(得分:12)
您需要setup a Linked Server instance。然后,您可以引用外部数据库,就像它是SQL Server数据库一样。
答案 1 :(得分:4)
是的 - 有两种方法:使用函数OPENROWSET
,或使用链接服务器。 OPENROWSET对ad-hoc单个语句非常有用,但如果您要定期执行此操作,请阅读链接服务器,因为它们允许您完全按照您在SQL语句中指定的内容执行操作...例如,
本地数据的
SELECT database.owner.table
SELECT server.database.owner.table
用于远程数据
是的,你可以混合搭配twixt本地和远程连接。请注意,如果您对远程服务器上存在的大型表进行连接,则需要使用caureul,因为查询可能需要很长时间才能执行...
答案 2 :(得分:3)
是的,你可以。你应该看看linked servers的首发。您也可以使用OPENROWSET直接点击它们,而不使用链接服务器。
答案 3 :(得分:0)
最简单的方法:
(目标sql服务器的ip和打开的端口)