/////////////////////////////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