リンクサーバーに接続する方法についてのチュートリアル
Linked Serverは、SQL Serverが別のSQL ServerインスタンスやOracleデータベースなどの別のODBCデータベースと直接対話する方法です。
この記事では、簡単な手順でリンクサーバーを設定する方法をお見せします!
環境
私のしていること
SQLサーバー上のテーブルとデータを表示できるように、gupta sqlbaseとSQL Serverを接続します.
ステップ1
ODBCデータソース管理者.
Windows ODBCデータソース管理者パネルを開き、Windows管理ツールの下で[スタート]メニューに移動し、ODBCデータソースを選択します.
ステップ2
パネルで、ユーザーDSN上のシステムDSNを選択します.
なぜ?
ユーザーDSNタブは、このコンピューター上で現在ログオンしているユーザーのみのデータソースを表示します.システムDSNの下でデータソースを作成している間、それはこのコンピュータに記録されるどんなユーザーにでも利用できます.
「新規データソース」ダイアログを開き、データソースを設定するドライバを選択します.私の場合、SQL Server用のgupta SQLベースです.
NOTES: Test connectivity on created DSN.
ステップ3
SQL Server 2019に移動し、新しいリンクサーバーを作成する新しいスクリプトを生成します.
スクリプトは以下のように書かれています.
手順2から[データベースソース名]フィールドを作成したデータソース名に置き換えます.
USE [master]
GO
/****** Object: LinkedServer [Database Source Name] Script Date: 8/11/2021 1:07:38 PM ******/
EXEC master.dbo.sp_addlinkedserver @server = N'Database Source Name', @srvproduct=N'Database Source Name', @provider=N'MSDASQL', @datasrc=N'Database Source Name'
/* For security reasons the linked server remote logins password is changed with password */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Database Source Name',@useself=N'False',@locallogin=NULL,@rmtuser=N'SYSADM',@rmtpassword='password'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'use remote collation', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'Database Source Name', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO
ステップ4
サーバーオブジェクトタブの下にリンクされたサーバーに移動してサーバーオブジェクトを更新します.
接続が表示され、ソースデータベースからすべてのテーブルを見るには展開できます.
ステップ5
接続がSQL Serverで正常に保存されているかどうかを確認します.
オプション1 :
以下のスクリプトを実行します.
sp_linkedservers;
これはリンクされたサーバーのリストを示します.そして、それはSQL Serverがこの接続を認めたことを意味します、そしてオプション2 :リンクされたサーバでSELECT文を使用する
スクリプト
select * from OPENQUERY(LinkedServer ,'select * from desired_database.schema.table_name' ) Go
ステップ7
データ転送
スクリプト
INSERT INTO targeted_database.dbo.table_name
SELECT * FROM OPENQUERY (LinkedServer, 'SELECT * FROM desired_database.schema.table_name)
Go
そこに行く!Reference
この問題について(リンクサーバーに接続する方法についてのチュートリアル), 我々は、より多くの情報をここで見つけました https://dev.to/imkateyoung/linked-server-tutorial-an-overview-and-walkthrough-3lcoテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol