如何通过SQL查询来链接服务器? (sql 查询 链接服务器)
SQL查询是一种广泛应用于数据管理的语言,很多程序员都需要链接不同的数据库或服务器来获取所需的数据。当需要从不同的服务器连接获取数据时,SQL联合查询就显得尤为重要。本文将介绍如何通过SQL查询来链接服务器的方法。以下是详细步骤:
1. 联接另一个 SQL Server 实例
使用SQL Server Management Studio(SS)打开SQL Server实例。使用SQL Server身份验证或Windows身份验证登录服务器,这取决于服务器的设置。接下来,打开一个查询窗口并输入以下代码:
“`
SELECT * FROM [ServerName].RemoteDatabaseName.dbo.TableName
“`
该代码将链接到名为ServerName的服务器中的RemoteDatabaseName数据库,并从TableName表中检索所有数据。
2. 联接数据库服务器
如果服务器和本地计算机不在同一个网络中,可以使用以下命令来执行与数据库服务器的联接:
“`
–通过脱机方式建立数据库联接
EXEC sp_addlinkedserver
@server = ‘LinkedServerName’,
@srvproduct = ”,
@provider = ‘SQLNCLI’,
@datasrc = ‘ServerName’,
@provstr = ‘Integrated Security=SSPI’
“`
该代码通过使用sp_addlinkedserver过程将LinkedServerName连接到ServerName上。
3. 联接Oracle服务器
要连接到Oracle服务器,需要使用TNS(透明网络子系统)名称。TNS名称是作为一种标准的数据库连接标识符使用。以下是连接Oracle服务器的示例代码:
“`
SELECT * FROM [OracleLinkedServerName]..[OracleDatabaseName].SCHEMA.TableName
“`
该代码将从OracleLinkedServerName链接到Oracle数据库服务器上的SCHEMA数据库,并查询TableName表中的所有数据。
4. 联接MySQL服务器
同样地,连接MySQL数据库需要使用连接程序和ODBC驱动程序。以下是连接MySQL服务器的示例代码:
“`
EXEC sp_addlinkedserver
@server = ‘MySQLServerName’,
@srvproduct = ”,
@provider = ‘MSDASQL’,
@datasrc = ‘MySQLDriver’,
@location = ‘localhost’,
@provstr = ‘Provider=MSDASQL.1;Persist Security Info=True;User ID=UserID;Password=Password;Data Source=MySQLDriver’
“`
该代码向SQL Server添加了一个MySQLLinkedServerName链接,并将其配置为连接到MySQL服务器。
通过SQL查询来链接服务器并从不同的服务器读取数据是一项重要的技能。本文详细介绍了如何连接到SQL Server,数据库服务器,Oracle服务器和MySQL服务器。尽管每个不同的服务器都有其独特的连接方法,但这些代码示例可以帮助程序员快速入门并开始获取所需的数据。
相关问题拓展阅读:
- sql数据库中跨不同数据库服务器的查询
- 如何通过 SQL Server 链接服务器和分布式查询使用 Excel
sql数据库中跨不同数据库服务器的查询
–SQL Server跨服务器查悔改铅询
–创建链接服务器(连接的保密要自己想办法解决啦!)
exec sp_addlinkedserver ‘LKSV’, ‘ ‘, ‘碧好SQLOLEDB’, ‘远程服务器名或ip地址’
exec sp_addlinkedsrvlogin ‘LKSV’, 歼庆’false ‘,null, ‘用户名’, ‘密码’
–查询实例
select * from LKSV.数据库名.dbo.表名
我也查不出来的
不给分你问个锤子
如何通过 SQL Server 链接服务器和分布式查询使用 Excel
SQL Server 支持到其他 OLE DB 数据源含带的永久性连接或临时连接。谈游芦永久性连接叫做链接服务器;为单个查询建立的临时连接叫做分布式查询。
Microsoft Excel 工作簿是一种可通过 SQL Server 以这种方式查询的 OLE DB 数据源。本文介绍了将 Excel 数据源配置为链接服务器磨棚所需的语法,以及使用分布式查询来查询 Excel 数据源所需的语法。
作为链接服务器查询 Excel
您可以使用企业管理器、系统存储过程或 SQL-DMO(分布式管理对象)将 Excel 数据源配置为 SQL Server 链接服务器。在所有的这些情况中,您总需要设置以下四个属性:
• 链接服务器要使用的名称。
• 连接要使用的 OLE DB 提供程序。
• Excel 工作簿的数据源或完整路径和文件名。
• 将目标标识为 Excel 工作簿的提供程序字符串。默认情况下,Jet 提供程序需要 Access 数据库。
系统存储过程 sp_addlinkedserver 也需要 @srvproduct 属性,该属性可以是任何字符串值。
使用企业管理器配置 Excel 链接服务器
1. 在企业管理器中,单击以展开安全文件夹。
2. 右键单击链接服务器,然后单击新建链接服务器。
3. 在常规选项卡上,按照下列步骤操作:a.在之一个文本框中,为该链接服务器键入任意名称。b.在服务器类型文本框中,单击其他数据源。c.在提供程序名称下拉列表框中,单击 Microsoft Jet 4.0 OLE DB 提供程序。d.在数据源文本框中,键入 Excel 文件的完整路径和文件名。e.在提供程序字符串文本框中,键入 Excel 8.0 代表 Excel 97、2023 或 2023 工作簿。f.单击确定以创建新的链接服务器。
4. 单击以展开此新链接服务器的名称,从而展开它所包含的对象列表。
5. 在新建链接服务器名称下,单击表。注意,工作表和命名区域将出现在右窗格中。
使用存储过程配置 Excel 链接服务器
您还可以使用系统存储过程 sp_addlinkedserver 将 Excel 数据源配置为链接服务器: DECLARE @RC int
DECLARE @server nvarchar(128)
DECLARE @srvproduct nvarchar(128)
DECLARE @provider nvarchar(128)
DECLARE @datasrc nvarchar(4000)
DECLARE @location nvarchar(4000)
DECLARE @provstr nvarchar(4000)
DECLARE @catalog nvarchar(128)
— Set parameter values
SET @server = ‘XLTEST_SP’
SET @srvproduct = ‘Excel’
SET @provider = ‘Microsoft.Jet.OLEDB.4.0’
SET @datasrc = ‘c:/book1.xls’
SET @provstr = ‘Excel 8.0’
EXEC @RC = .. @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog
如上所述,此存储过程另需一个任意字符串值作为 @srvproduct 参数的值,此参数在企业管理器配置中显示为“产品名称”。不使用 @location 和 @catalog 参数。
使用 SQL-DMO 配置 Excel 链接服务器
您可以使用 SQL 分布式管理对象从 Microsoft Visual Basic 或其他编程语言中将一个 Excel 数据源以编程方式配置为链接服务器。您必须也提供企业管理器配置中要求的那四个参数。 Private Sub Command1_Click()
Dim s As SQLDMO.SQLServer
Dim ls As SQLDMO.LinkedServer
Set s = New SQLDMO.SQLServer
s.Connect “(local)”, “sa”, “password”
Set ls = New SQLDMO.LinkedServer
With ls
.Name = “XLTEST_DMO”
.ProviderName = “Microsoft.Jet.OLEDB.4.0”
.DataSource = “c:/book1.xls”
.ProviderString = “Excel 8.0”
End With
s.LinkedServers.Add ls
s.Close
End Sub
查询 Excel 链接服务器
将 Excel 数据源配置为链接服务器之后,您可以方便地通过“查询分析器”或其他客户端应用程序查询其数据。例如,为了检索存储在 Excel 文件 Sheet1 中的数据行,以下代码使用了您使用 SQL-DMO 配置的链接服务器: SELECT * FROM XLTEST_DMO…Sheet1$
您还可以使用 OPENQUERY 以“passthrough”(传递)方式查询 Excel 链接服务器,如下所示: SELECT * FROM OPENQUERY(XLTEST_DMO, ‘SELECT * FROM ‘)
OPENQUERY 需要的之一个参数是链接服务器名称。工作表名称之间需要用分隔符分开,如上所示。
您还可以使用以下查询获得 Excel 链接服务器上所有可用表的列表: EXECUTE SP_TABLES_EX ‘XLTEST_DMO’
您可以使用 SQL Server 分布式查询和 OPENDATASOURCE 或 OPENROWSET 函数临时查询很少访问的 Excel 数据源,如下所示: SELECT * FROM OPENDATASOURCE(‘Microsoft.Jet.OLEDB.4.0’,
‘Data Source=c:/book1.xls;Extended Properties=Excel 8.0’)…Sheet1$
注意,OPENROWSET 对第二个(“提供程序字符串”)参数使用一种非常规语法: SELECT * FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’,
‘Excel 8.0;Database=c:/book1.xls’, Sheet1$)
ActiveX 数据对象 (ADO) 开发人员按照常规应对 OPENROWSET 的第二个(“提供程序字符串”)参数使用的语法会 SELECT * FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’,
‘Data Source=c:/book1.xls;Extended Properties=Excel 8.0’, Sheet1$)
造成 Jet 提供程序出现以下错误:
sql 查询 链接服务器的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于sql 查询 链接服务器,如何通过SQL查询来链接服务器?,sql数据库中跨不同数据库服务器的查询,如何通过 SQL Server 链接服务器和分布式查询使用 Excel的信息别忘了在本站进行查找喔。