sqlserver 跨庫 操作數據 sql語句

 


-------------- sqlserver 跨庫 操作 --------------
-------------- 常見應用場景:查詢遠程數據庫 一次性把數據導入到本地數據庫表中

-------------- 創建服務器連接 BEGIN--------------
--- EXEC sys.sp_addlinkedserver" 是用於向 SQL Server 中添加鏈接服務器的存儲過程。
EXEC sys.sp_addlinkedserver

-- sysname 【必填】 鏈接服務器的名稱,手動填寫,然後在本地的服務器對象-連接服務器就會顯示這個服務器名稱。
@server = 'ITSV',

-- nvarchar(128) 【必填,如果不填寫,默認情況下 SQL Server 將使用適用於 OLE DB 連接的通用提供程序。這通常是一個合理的默認選擇,但最好還是根據實際情況提供鏈接服務器所運行的產品名稱以確保正確的連接。例如 Microsoft SQL Server、Oracle、MySQL 等】 鏈接服務器所運行的產品名稱
@srvproduct = N'',

--nvarchar(128)【非必填:SQLOLEDB】 鏈接服務器所使用的 OLE DB 提供程序的名稱。
--通常情況下,如果您正在連接到 SQL Server 數據庫,則可以使用 "SQLNCLI" 作爲 OLE DB 提供程序的名稱。如果您正在連接到其他類型的數據庫,比如 Oracle 或 MySQL,則需要提供相應的 OLE DB 提供程序的名稱。
--如果省略了該參數,則 SQL Server 將根據指定的 @srvproduct 來選擇默認的 OLE DB 提供程序。
@provider = N'SQLOLEDB',

-- nvarchar(4000) 【必填,遠程數據庫服務器地址】 鏈接服務器的數據源。
@datasrc = N'test.com,1433',
@location = N'', -- nvarchar(4000) 【非必填】 鏈接服務器的位置信息。
@provstr = N'', -- nvarchar(4000) 【非必填】 鏈接服務器的 OLE DB 提供程序特定的連接字符串。
@catalog = NULL -- sysname 【非必填】 鏈接服務器的默認目錄名稱。
--------------創建服務器連接 END --------------


-------------- 登錄服務器BEGIN --------------
--EXEC sys.sp_addlinkedsrvlogin 是用於配置鏈接服務器登錄信息的存儲過程
EXEC sys.sp_addlinkedsrvlogin

-- 【必填】 遠程服務器的名稱。創建連接的時候手動 設置的名稱 @server
@rmtsrvname = 'ITSV', -- sysname

--指定是否使用當前登錄的身份信息。如果設置爲 'true',表示使用當前登錄用戶的身份信息進行連接;如果設置爲 'false',則需要提供遠程服務器的用戶名和密碼。
@useself = 'false', -- varchar(8)

--在創建鏈接服務器時用來指定鏈接服務器上的登錄名。指定了@locallogin後,當鏈接服務器執行查詢時,將使用指定的登錄名進行身份驗證。
@locallogin = NULL, -- sysname

--遠程服務器的用戶名。當 @useself 設置爲 'false' 時需要提供。
@rmtuser = 'bjjwsjyzzbkjyxgs_luiy588103', -- sysname

--遠程服務器的密碼。當 @useself 設置爲 'false' 時需要提供。
@rmtpassword = 'P8%V&xRN705@124_' -- sysname

-------------- 登錄服務器END --------------

-------------- 刪除 服務器的連接 BEGIN --------------
-- 是用於刪除鏈接服務器的存儲過程 不用的時候刪除 服務器的連接
EXEC sys.sp_dropserver

--要刪除的鏈接服務器的名稱。 創建連接的時候手動 設置的名稱 @server
@server = 'ITSV', -- sysname

--可選參數,指定是否同時刪除與該鏈接服務器相關聯的登錄信息。如果設置爲 'droplogins',則會刪除與該鏈接服務器相關聯的登錄信息;如果不設置該參數,則只刪除鏈接服務器本身而保留登錄信息。
@droplogins = 'droplogins' -- char(10)

-------------- 刪除 服務器的連接 END --------------

 

----------批量 查詢讀取 遠程服務器數據庫表的數據 BEGIN ----------

--select FullName,UserCode, 1 from ITSV.數據庫.dbo.表名稱

----------批量 查詢讀取 遠程服務器數據庫表的數據  END ----------

 

更多參考 : https://www.cnblogs.com/tylerflyn/p/8339895.html

 

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