SQL スクリプトで別の SQL Server インスタンスのテーブルからデータをクエリする方法を知りたいです。
実行中のSQLスクリプトを書いて127.0.0.1\SQLINSTANCE1
いますが、スクリプト内でデータを選択し127.0.0.2\SQLINSTANCE2
、計算の一部として結果データを返します。
ググった後、それを行うためにsp_addlinkedserver
およびsp_addlinkedsrvlogin
ストアド プロシージャを使用しているように見えますが、残念ながら完全なサンプルの動作はありません。
ここでいくつかの作業がありますが、期待どおりに機能していません。たとえば、もう一度実行すると、サーバーが既にリンクされているなどのエラーがポップアップ表示されます。しかし、サーバーをリンクしてから破棄するためにこのスクリプトを実行するにはどうすればよいでしょうか?
DECLARE @remoteserver VARCHAR = '127.0.0.2\SQLINSTANCE2';
EXEC master.sys.sp_addlinkedserver @server = @remoteserver
, @srvproduct = 'SQL Server';
EXEC master.sys.sp_addlinkedsrvlogin @rmtsrvname = @remoteserver
, @useself = 'false'
, @locallogin = NULL
, @rmtuser = 'sa'
, @rmtpassword = 'password';
反対に、この見苦しいリモート サーバー名のエイリアスを作成するにはどうすればよいでしょうか。RSのようなエレガントな名前を使用したいselect * from [RS].[db].[dbo].[table]