如何用SQL SERVER 2005连接SQL SERVER 2008
原先使用sql server 2005数据库,后来由于工作需要升级为sql server 2008 开发版,升级过程很简单,基本没有什么问题
下面主要说说,如何使用sql server 2005 studio来连接sql server 2008,过程其实很简单,主要注意两点
1) sql server 2005 studio需要打sp4补丁
在关于里面看到management studio 版本号为90050000;如果未打补丁,提示“只能管理sql server 2000和2005数据库”
2)sql server 2008 如果安装在windows 2008上,要在防火墙里面增加运行程序通过。
3)sql server 2008 配置工具来配置tcp/IP协议需要启动。
主要12两点OK,基本都可以连接成功。第3点仅用于提醒;
SQL SERVER2012建立链式服务器错误代码7303是设置错误造成的,解决方法为:
1、点击右下角开始->所有程序->Microsoft SQL Server2012然后找到《配置工具》->《SQL Server 配置管理器》打开。
2、点击左边SQL Server 服务。
3、右击SQL Server (MSSQLSERVER)选择启动,或点击属性选择启动。
4、正在启动服务。
5、启动成功,关闭。
6、再次连接即可。
建立链接服务器:
execsp_addlinkedserver'test','','SQLOLEDB','1921813'
说明:上述语句中test为创建的链接服务器的名称,为了在本地服务器的数据库中使用,19216313为远程数据库服务器的ip地址。
建立链接服务器登录:
execsp_addlinkedsrvlogin'test','false',null,'sa','pass'
说明:第一个参数为刚刚建立的链接服务器的名称,最后的sa,pass为远程数据库的登录名与密码。
建立完链接服务器后,可以在本地服务器中操作链接服务器上的数据
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 40 OLE DB 提供程序。d在数据源文本框中,键入 Excel 文件的完整路径和文件名。e在提供程序字符串文本框中,键入 Excel 80 代表 Excel 97、2000 或 2002 工作簿。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 = 'MicrosoftJetOLEDB40'
SET @datasrc = 'c:/book1xls'
SET @provstr = 'Excel 80'
EXEC @RC = [master][dbo][sp_addlinkedserver] @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 SQLDMOSQLServer
Dim ls As SQLDMOLinkedServer
Set s = New SQLDMOSQLServer
sConnect "(local)", "sa", "password"
Set ls = New SQLDMOLinkedServer
With ls
Name = "XLTEST_DMO"
ProviderName = "MicrosoftJetOLEDB40"
DataSource = "c:/book1xls"
ProviderString = "Excel 80"
End With
sLinkedServersAdd ls
sClose
End Sub
查询 Excel 链接服务器
将 Excel 数据源配置为链接服务器之后,您可以方便地通过“查询分析器”或其他客户端应用程序查询其数据。例如,为了检索存储在 Excel 文件 Sheet1 中的数据行,以下代码使用了您使用 SQL-DMO 配置的链接服务器: SELECT FROM XLTEST_DMOSheet1$
您还可以使用 OPENQUERY 以“passthrough”(传递)方式查询 Excel 链接服务器,如下所示: SELECT FROM OPENQUERY(XLTEST_DMO, 'SELECT FROM [Sheet1$]')
OPENQUERY 需要的第一个参数是链接服务器名称。工作表名称之间需要用分隔符分开,如上所示。
您还可以使用以下查询获得 Excel 链接服务器上所有可用表的列表: EXECUTE SP_TABLES_EX 'XLTEST_DMO'
您可以使用 SQL Server 分布式查询和 OPENDATASOURCE 或 OPENROWSET 函数临时查询很少访问的 Excel 数据源,如下所示: SELECT FROM OPENDATASOURCE('MicrosoftJetOLEDB40',
'Data Source=c:/book1xls;Extended Properties=Excel 80')Sheet1$
注意,OPENROWSET 对第二个(“提供程序字符串”)参数使用一种非常规语法: SELECT FROM OPENROWSET('MicrosoftJetOLEDB40',
'Excel 80;Database=c:/book1xls', Sheet1$)
ActiveX 数据对象 (ADO) 开发人员按照常规应对 OPENROWSET 的第二个(“提供程序字符串”)参数使用的语法会 SELECT FROM OPENROWSET('MicrosoftJetOLEDB40',
'Data Source=c:/book1xls;Extended Properties=Excel 80', Sheet1$)
造成 Jet 提供程序出现以下错误:
Could not find installable ISAM
0条评论