0

私は2つのデータベースを持っています。最初のデータベースは "db1"で、2番目のデータベースは "db2"です。それぞれが異なるサーバー「server1」および「server2」にそれぞれ配置されています。しかし、これら2台のサーバーが接続されているので、「server1」から「db2」を問い合わせることができます。SQL Serverでサーバー間でデータをプルアップするカスタムマテリアライズドビューを作成する方法は?

"db2"というクエリを実行する "db1"には、複雑なストアドプロシージャがあります。このストアドプロシージャは複雑で、多くの結合と結合があります。毎日午前12:00にこの複雑なストアド・プロシージャを実行する "db1"内のマテリアライズド・ビューを作成できるかどうかを考えていました。 "server2"にある "db2"に接続せずに、 "server1"にある "db1"からビューを直接照会することができます。

ここでも、「server1」と「server2」はリンクサーバーです。

このマテリアライズドビューを作成する方法を誰にも教えてください。

ありがとうございます!

+0

db1はdb2からレプリケートされていますか、まったく異なるデータベースですか。また、ビューは設定された時間間隔でストアドプロシージャをどのように実行しますか? –

+0

これは、ビューのように聞こえなくなり、テーブルのように聞こえるようになります。 'truncate table;を行うことができます。テーブルへの挿入exec sproc(parameters); '、 – Blorgbeard

+0

@RossBush db1は別の形式です。db2 – Riad

答えて

-1

1つの解決方法は、リンクサーバーを作成することです。つまり、「サーバー1」から「サーバー2」にアクセスできるように、「サーバー1」から「サーバー2」へのリンクサーバーを作成することができます。次に、「サーバー2」に必要なビューを作成し、通常のビューまたはテーブルにアクセスするのと同様に「サーバー1」からアクセスできます。

次に、リンクサーバーを使用してビューを作成するには、4つの修飾名を使用します。 Ex-

CREATE VIEW [dbo].[viewname] 
AS 
    SELECT * 
    FROM servername.database.dbo.table 
GO 
+0

私は私の質問 "接続"に記載されているようにリンクされています。しかし、私はそのビューを作成する方法を知らない – Riad

+0

ビューを作成する方法を説明した回答が更新されました。 –

+0

Viewはselectステートメントに過ぎません。データはどの場所にも格納されません。したがって、ビューから選択するたびに、アンダーラインのselect文が実行され、結果が取得されます。データをテーブルに保存する場合は、別の話です。あなたは何をしたいのですか:-)。 Btw、selectステートメントを実行する場合は、SQL Serverエージェントで実行できます。 あなたが私の答えに満足しているなら、それをアップ投票してください:-)。 –

関連する問題