1. 程式人生 > >MS SQLSERVER如何實現跨伺服器查詢

MS SQLSERVER如何實現跨伺服器查詢

--跨伺服器查詢如下:

SELECT a.*

FROM OPENROWSET('MSDASQL',

   'DRIVER={SQL Server};SERVER=10.27.27.160;UID=sa;PWD=ncunicom_alarm',

   BSC_ALARM.dbo.ALARM_LIST) AS a

--其中,10.27.27.160為遠端伺服器IP,也可以使用別名,BSC_ALARM是遠端資料庫,ALARM_LIST遠端資料庫中的表

如:
insert into dbo.Kqmx_200704
select *
from openrowset('MSDASQL',
 'DRIVER={SQL Server};SERVER=192.168.1.253;UID=sa;PWD=',


 one.dbo.Kqmx_200704)

另:

連線遠端伺服器進行資料查詢時可以這麼做:select * from [**.**.**.**].test.dbo.t1
不過,不出意外的話會報錯:在 sysservers 中未能找到伺服器 '**.*.**.**'。請執行 sp_addlinkedserver 以將伺服器新增到 sysservers。
新增sysservers:exec   sp_addlinkedserver     'srv_lnk','','SQLOLEDB','**.*.**.**'
再查詢:select * from srv_lnk.test.dbo.t1 (因為定義了“別名”,所以這兒“別名”)
除非兩個伺服器上的該使用者的密碼一樣,否則會報:使用者 '**' 登入失敗。
指定登入使用者:exec   sp_addlinkedsrvlogin   'srv_lnk','false',null,'rUser','rPwd'  
再查詢:select * from srv_lnk.test.dbo.t1,如果無意外的話就應該是成功的

sp_addlinkedserver

建立一個連結的伺服器,使其允許對分散式的、針對 OLE DB 資料來源的異類查詢進行訪問。在使用 sp_addlinkedserver 建立連結的伺服器之後,此伺服器就可以執行分散式查詢。如果連結伺服器定義為 Microsoft® SQL Server™,則可執行遠端儲存過程。

Exec sp_droplinkedsrvlogin server,Null 
Exec sp_dropserver server 
EXEC sp_addlinkedserver 
@server= 'server ',--被訪問的伺服器別名 
@srvproduct= ' ', 
@provider= 'SQLOLEDB ', 
@datasrc= '10.23.11.28,3342 ' --要訪問的伺服器 


EXEC sp_addlinkedsrvlogin 
'server ', --被訪問的伺服器別名 
'false ', 
NULL, 
'la0001 ', --帳號 
'aaaaaa ' --密碼

連結伺服器沒問題,在查詢分析器裡執行例如:select * from [192.168.0.119].fash.dbo.vwAllUser沒問題. 
但如果想建立一個簡單的儲存過程: 
CREATE PROCEDURE TEST AS 
set nocount on 
SET ARITHABORT,CONCAT_NULL_YIELDS_NULL,QUOTED_IDENTIFIER,ANSI_NULLS,ANSI_PADDING,ANSI_WARNINGS ON 
set NUMERIC_ROUNDABORT off 

select * from [192.168.0.119].fash.dbo.vwAllUser 
GO 

不能儲存此儲存過程,提示: 
錯誤7405:異類查詢要求為連線設定 ANSI_NULLS 和 ANSI_WARNINGS 選項。這將確保一致的查詢語義。請啟用這些選項,然後重新發出查詢。

解決辦法:

在儲存過程中加 
SET ANSI_NULLS ON 
SET ANSI_WARNINGS ON 
SET XACT_ABORT on

相關推薦

MS SQLSERVER如何實現伺服器查詢

--跨伺服器查詢如下: SELECT a.* FROM OPENROWSET('MSDASQL',    'DRIVER={SQL Server};SERVER=10.27.27.160;UID=sa;PWD=ncunicom_alarm',    BSC_ALARM.dbo.ALARM_LIS

mysql實現伺服器查詢資料

在日常的開發中經常進行跨資料庫進行查詢資料。 同伺服器下跨資料庫進行查詢在表前加上資料庫名就可以查詢到資料。 mysql跨伺服器進行查詢提供了FEDERATED引擎進行對映表,然後進行查詢。 mysql資料庫federated引擎是關閉的,首先需要先啟用該引擎。

sqlserver伺服器查詢資料

[SQL SERVER] 跨伺服器查詢 方法一: 用OPENDATASOURCE 下面是個跨SQLServer查詢的示例 Select TableA.*,TableB.* From OPENDATASOURCE(          'SQLOLEDB',         

SqlServer 連線字串不使用資料庫名 實現查詢

此次運用需要在同一伺服器下,在一個庫中SQL查詢一組資料,作為引數提交到一個另一個庫的函式中進行計算,以前沒玩過,問了下度娘,未得到可用結果,遂根據查到的零星資訊猜想,取消連線字串裡面的庫名稱試試能不能同時操作多個庫,經測試,順利一次通過執行成功!詳見以下程式碼(以ASP為

利用JDBC連線實現伺服器資料庫表資料傳輸

  如題  我現在有兩個伺服器 A和B 我現在要把A伺服器上的某一個庫裡面的所有的表及結構及資料 匯入另外一個伺服器上,實現原理利用原始JDBC 完成 程式碼類:  回家再擼 目前在公司 。。 下班    哈哈 晚上吃了點飯 就回來

伺服器查詢資料

use master; go drop database mydata; go create database mydata; go use mydata; go create table t_user ( userguid uniqueidentifier not null defa

JAVA+FTP實現伺服器獲取檔案,支援區域網和外網

     1.FTP服務是filezilla server。 下載地址: https://filezilla-project.org/ 2.filezilla server安裝及配置教程 教程地址: https:

C#連結SQLServer實現插入和查詢資料來源程式碼

String sql = "insert into Fileuploaded (FileID,FileName,FilePath,QRCodePath,FileSuffix) Values('"+fileNameSave+"','"+fileName+"','"+filePath+"','"+filePat

SQL SERVER伺服器查詢

1.執行儲存過程 sp_addlinkedserver 以將伺服器新增到 sys.servers。 exec sp_addlinkedserver 'IPTV', ' ', 'SQLOLEDB ', '遠端伺服器名或ip地址 ' exec sp_addlink

Oracle使用DBLINK實現查詢

Platform: OS:Windows Server 2012 R2 64bit Oracle:11.2 64bit 引子: 在對醫院的審計中,因為該醫院使用了兩個HIS系統,涉及到兩個O

SQLServer伺服器資料庫之間的資料操作

首先必須理解一個概念: select * from sys.servers         (檢視系統表,看原來的伺服器名) 要想跨域就必須在以上資訊中可以檢索到! 怎樣新增? --建立連結伺服器  exec sp_addlinkedserver   'ITS

Jenkins-Docker-SpringBoot-java-git-gradle-持續整合與自動部署-實現伺服器部署

1.首先你需要在git倉庫中有一份可作為服務啟動的springboot程式碼。 可選擇方案(github-國外,Gitee國內,自己搭建私有倉庫): 1.1 如果你只是為了測試或者你的專案是開源的,可以選擇github(國外),因為github私有專案需要收費,你懂的。gi

mysql伺服器查詢

1 引擎說明 本地MySQL資料庫要訪問遠端MySQL資料庫的表中的資料, 必須通過FEDERATED儲存引擎來實現. 有點類似Oracle中的 資料庫連結(DBLINK). 要允許這個儲存引擎, 當構建MySQL時使用--with-federated-storage-engine來configure

springMVC+jersey實現伺服器檔案上傳

1.首先新增所需要的jar包   2.在springMVC的配置檔案中新增檔案上傳解析器 <!-- 檔案上傳的解析器 --> <bean id="multipartR

快取一致性和伺服器查詢的資料異構解決方案canal

當你的專案資料量上去了之後,通常會遇到兩種情況,第一種情況應是最大可能的使用cache來對抗上層的高併發,第二種情況同樣也是需要使用分庫 分表對抗上層的高併發。。。逼逼逼起來容易,做起來並不那麼樂觀,由此引入的問題,不見得你有好的解決方案,下面就具體分享下。 一:儘可

sql serve 伺服器查詢資料方法

 今天在做sql server 的資料查詢時,需要用到跨伺服器連線,在這裡記錄一下,如何在sql server 中,使用跨伺服器查詢的方法,有以下步驟。 /*建立中間資料庫連結 exec sp_addlinkedserver 'MiddleData', ' ', 'SQ

SQL Server 實現服務器查詢的方式

lol linked server nbsp drop false err dlink pre 幹貨如下: exec sp_addlinkedserver ‘ITSV‘, ‘‘, ‘SQLOLEDB‘, ‘crs.***.com,6598‘ exec sp_addl

查詢選修了全部課程的學生姓名_如何解?-MS-SQLServer/應用實例

sqlserver sna sts bsp 課程 這一 學生 .cn 全部 查詢選修了全部課程的學生姓名:student 是學生表 course 是選課表 sc 是課程表select snamefrom studentwhere not exists(select *fro

SqlServer中通過SQL語句實現樹狀查詢

clas all bold join where procedure ner log class 1 CREATE PROCEDURE [dbo].[GetTree] 2 @Id int 3 AS 4 BEGIN 5 with cte as

在項目中遷移MS SQLServer到Mysql數據庫,實現MySQL數據庫的快速整合

mage 操作 info 支持 文件選擇 需要 並且 在服務器 重要 在開發項目的時候,往往碰到的不同的需求情況,兼容不同類型的數據庫是我們項目以不變應萬變的舉措之一,在底層能夠兼容多種數據庫會使得我們開發不同類型的項目得心應手,如果配合快速的框架支持,那更是錦上添花的舉措