如何从sql语句或存储过程连接到外部数据库?

时间:2009-12-21 19:53:41

标签: sql sql-server database tsql linked-server

在数据库上运行SQL语句或存储过程时,是否可以连接到外部数据库并从那里提取数据?

类似的东西:

SELECT a.UserID, b.DataIWantToGet 
  FROM mydb.Users as a, externaldb.Data as b

4 个答案:

答案 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)

最简单的方法:

  • 点击连接到服务器
  • 当要求使用服务器名称时: 192.168.X.X,1433 \ SQLEXPRESS 插入了 YOURPC \ SQLEXPRESS
  

(目标sql服务器的ip和打开的端口)

  • 输入正确的用户名和密码
  • 完成!