sp_addlinkedserver(網上資料收集)

/////////////////////////////SQL SERVER////////////////////////////

Exec sp_droplinkedsrvlogin DBVIP,Null

Exec sp_dropserver DBVIP

EXEC sp_addlinkedserver

      @server='DBVIP',--被訪問的服務器別名

      @srvproduct='',

      @provider='SQLOLEDB',

      @datasrc='Server2'   --要訪問的服務器

 

EXEC sp_addlinkedsrvlogin

     'DBVIP', --被訪問的服務器別名

     'false',

     NULL,

     'sa', --帳號

     'thankyoubobby' --密碼

 

Select   *   from DBVIP.pubs.dbo.orders  

 

/////////////////////////////ORACLE////////////////////////////

需要SQL SERVER服務器中安裝ORACLE客戶端;

Exec sp_droplinkedsrvlogin demo,Null

Exec sp_dropserver demo

go

EXEC sp_addlinkedserver

        @server ='demo', --要創建的鏈接服務器別名

        @srvproduct='Oracle', --產品名稱    

 @provider='MSDAORA', --OLE DB 字符

 @datasrc='ServiceName'   --數據源 oracle"ora92"network"admin"tnsnames.ora 查看

 

EXEC sp_addlinkedsrvlogin

     'demo', --已建立的鏈接服務器名

     'false', -- 固定 */

     NULL, --爲每個登陸SQL SERVER的用戶使用此鏈接服務器,否則寫用戶名 */

     'userid', --帳號

     'password' –密碼

go

 

SELECT * FROM demo.. USERID.TABLE

--注意用大寫,因爲在Oracle的數據字典中爲大寫

數據庫的格式必須是鏈接服務器名..ORACLE用戶名.表名.

 

SELECT * FROM OPENQUERY(demo ,'select * from tbdemo' )

UPDATE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE id = 101')

SET name = 'hello';

INSERT OPENQUERY (demo, 'SELECT id FROM tbdemo')

VALUES ('hello');

DELETE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE name = ''hello''');

如此則在SQL SERVER中就可以訪問ORACLE的數據了。

建立的鏈接服務器可以在企業管理器中看見.

 

/////////////////////////////ACCESS////////////////////////////

--建立連接服務器

EXEC sp_addlinkedserver

'ai',             --要創建的鏈接服務器名稱 

access',     --產品名稱   

'Microsoft.Jet.OLEDB.4.0', --OLE DB 字符

'd:"testdb"db.mdb' --數據源 -- 盤符:"路徑"文件名 -- ""網絡名"共享名"文件名 (網絡版本)

GO

 

--創建鏈接服務器上遠程登錄之間的映射

--鏈接服務器默認設置爲用登陸的上下文進行

--現在我們修改爲連接鏈接服務器不需使用任何登錄或密碼

exec sp_addlinkedsrvlogin 'ai','false'

go

 

select * from ai...mytable

 

/////////////////////////////EXCEL////////////////////////////

--建立連接服務器

EXEC sp_addlinkedserver

'ai_ex',            --要創建的鏈接服務器名稱 

'ex',     --產品名稱        

'Microsoft.Jet.OLEDB.4.0', --OLE DB 字符

'd:"testdb"mybook.xls' , --數據源 -- 盤符:"路徑"文件名-- ""網絡名"共享名"文件名 (網絡版本)

null,

'Excel 5.0' --OLE DB 提供程序特定的連接字符串

GO

 

----創建鏈接服務器上遠程登錄之間的映射

--鏈接服務器默認設置爲用登陸的上下文進行

--現在我們修改爲連接鏈接服務器不需使用任何登錄或密碼

exec sp_addlinkedsrvlogin 'ai_ex','false'

go

 

--查詢數據

select * from ai_ex...sheet3$

 

/////////////////////////////MS SQL////////////////////////////

--建立連接服務器

EXEC sp_addlinkedserver

'ai_mssql',        --要創建的鏈接服務器名稱      

'ms',     --產品名稱 

'SQLOLEDB', --OLE DB 字符

'218.204.111.111,3342' --數據源

GO

 

--創建鏈接服務器上遠程登錄之間的映射

EXEC sp_addlinkedsrvlogin

'ai_mssql',

'false',

NULL,

'zhangzhe', --遠程服務器的登陸用戶名

'fish2231' --遠程服務器的登陸密碼

go

 

--查詢數據

select * from ai_mssql.pubs.dbo.jobs

 

--還有一個更簡單的辦法

--這種方式在鏈接服務器建立後,它是默認開放RPC

--建立連接服務器

EXEC sp_addlinkedserver

'218.204.111.111,3342', --要創建的鏈接服務器名稱

'SQL Server' --這裏就用數據源作名稱

GO

 

--創建鏈接服務器上遠程登錄之間的映射

EXEC sp_addlinkedsrvlogin

'218.204.111.111,3342',

'false',

NULL,

'zhangzhe', --遠程服務器的登陸用戶名

'fish2231' --遠程服務器的登陸密碼

go

 

--查詢數據

select * from [218.204.253.131,3342].pubs.dbo.jobs

go

 

 

-------------------------------------------------------------------------

sql服務器A連接到sql服務器B(192.168.5.6)上的數據庫,操作方式

IF EXISTS(SELECT * FROM SYS.SERVERS WHERE name='YLDATA')
 Exec sp_droplinkedsrvlogin YLDATA,Null

Exec sp_dropserver YLDATA

EXEC sp_addlinkedserver
      @server='YLDATA',--被訪問的服務器別名 (自己定義)
      @srvproduct='',
      @provider='SQLOLEDB',
      @datasrc='192.168.5.6'   --要訪問的服務器數據庫名稱(B)或者ip

EXEC sp_addlinkedsrvlogin
     'YLDATA', --被訪問的服務器別名
     'false',
     NULL,
     'sa', --帳號
     '123456' --密碼

 

Select   *   from YLDATA.DB_MZ.dbo.CUST  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章