4

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]

4

2 に答える 2

1

OPENROWSETを使用できるため、リンク サーバーを作成および削除する必要はありません。

于 2013-09-06T07:02:38.063 に答える