mssql连接器:MSSQL跨服务器连接的几种思路方法来源: 发布时间:星期三, 2008年12月17日 浏览:142次 评论:0
="t18">下面对 MSSQL 跨服务器连接
![]() ![]() 1 OPENDATASOURCE 在SQL文中直接用此语句打开数据库 ![]() OPENDATASOURCE( 'SQLOLEDB', 'Data Source=TQDBSV001;User ID=fish;Password=2312').RackDB.dbo.CS 很简单 ![]() ![]() 2 OPENROWSET 不想打字了 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 包括从 OLE DB 资料来源存取远端资料需要 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 语法 OPENROWSET ( 'provider_name' , { 'datasource' ; 'user_id' ; 'password' | 'provider_ ![]() , { [ catalog.] [ schema.] object | 'query' } ) 引数 'provider_name' 代表登录中指定 ![]() ![]() ![]() ![]() 'datasource' 是对应到特殊 OLE DB 资料来源 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 'user_id' 是要传送到指定 ![]() ![]() ![]() ![]() ![]() ![]() 'password' 是要传送到 OLE DB Provider ![]() ![]() ![]() ![]() ![]() 'provider_ ![]() 是以 DBPROP_INIT_PROVIDERSTRING 属性传送以 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() catalog 是有指定物件 ![]() ![]() schema 是指定物件 ![]() ![]() object 唯 ![]() ![]() ![]() 'query' 传送到提供者并由提供者执行 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 备注 如果 OLE DB Provider 支援指定 ![]() ![]() ![]() ![]() ![]() ![]() ![]() 如果提供者只支援结构描述名称 ![]() ![]() ![]() ![]() ![]() ![]() OPENROWSET 不接受变数作为其引数 ![]() 权限 OPENROWSET 权限由传送到 OLE DB Provider ![]() ![]() ![]() 范例 A. 使用有 Select ![]() 以下范例使用 Microsoft OLE DB Provider for SQL Server ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 格式: Select a.* FROM OPENROWSET('SQLOLEDB’,'ServerName';'LoginUser';'Password', 'Select * FROM [DatabaseName].dbo.TableName orDER BY ColName1, ColName12') AS a 介绍说明:查询所提供 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 例子: USE pubs GO Select a.* FROM OPENROWSET('SQLOLEDB','seattle1';'sa';'MyPass', 'Select * FROM pubs.dbo.authors orDER BY au_lname, au_fname') AS a GO B. 使用有物件 ![]() 以下范例使用 OLE DB Provider for ODBC 和 SQL Server ODBC 驱动程式 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 格式:这连接方式是ODBC数据 ![]() ![]() Select a.* FROM OPENROWSET('MSDASQL', 'DRIVER={SQL Server};SERVER=ServerName;UID=LoginUser;PWD=Password, [DatabaseName].dbo.TableName) AS a orDER BY ColName1, ColName12 USE pubs GO Select a.* FROM OPENROWSET('MSDASQL', 'DRIVER={SQL Server};SERVER=seattle1;UID=sa;PWD=MyPass', pubs.dbo.authors) AS a orDER BY a.au_lname, a.au_fname GO C. 使用 Microsoft OLE DB Provider for Jet 以下范例藉由Microsoft OLE DB Provider for Jet 存取 Microsoft Access Northwind 资料库中 ![]() ![]() 1.附注 以下范例假设已经安装 Access ![]() 1、 USE pubs GO Select a.* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\MSOffice\Access\Samplesorthwind.mdb';'admin';'mypwd', orders) AS a GO 2、 select * from openrow ![]() 'E:\Study\Access\test.mdb';'admin';'','select * from student') 或 Select a.* FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'E:\Study\Access\test.mdb';'admin';'', student) AS a 2.是以Excel为例 ![]() select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=G:\WorkEveryDay\DayDo\OrderList',OrderList$) DATABASE=G:\WorkEveryDay\DayDo\OrderList'是Excel ![]() ,OrderList$是工作区 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() select * from openrow ![]() 介绍说明:SourceType是数据源类型,SourceDB是数据源,后面是操作DBF ![]() ![]() D. 使用 OPENROWSET 和 INNER JOIN 中 ![]() 以下范例选取储存在相同电脑上 SQL Server Northwind 资料库 ![]() ![]() ![]() ![]() ![]() ![]() 附注 以下范例假设已经安装 Access ![]() USE pubs GO Select c.*, o.* FROM Northwind.dbo.Customers AS c INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\MSOffice\Access\Samplesorthwind.mdb';'admin';'mypwd', orders) AS o _disibledevent= 'ls_Source') exec sp_dropserver 'ls_Source','droplogins' go exec sp_addlinkedserver 'ls_Source', 'ms','SQLOLEDB','TAODBSV001' go EXEC sp_addlinkedsrvlogin 'ls_Source','false','sa','read','' 0
相关文章读者评论发表评论 |