- PR -

ストアドプロシージャを別データベースで実行したいのですが…

1
投稿者投稿内容
のっぴき
会議室デビュー日: 2006/02/06
投稿数: 5
投稿日時: 2006-04-12 20:52
大変お世話になっております。

環境:SQL SERVER 7.0

タコな質問ならごめんなさい。

2つのDBがあります。
あるストアドプロシージャ−で、別のDBのデータを操作したいのですが、
具体的な方法がわかりません。

別DBに同じストアドプロシージャ−を作れば問題ないと思うのですが、
環境の都合上、実現できません。

私の素人考えだと、以下の手順をストアドプロシージャ−内に書いて
実行すれば、解決するものだと思っております。
@「別DBへログイン」 → ?
A使用するテーブルを選ぶ → USE テーブル名
B行いたい処理 → select hoge from …
Cログオフする → ?

ご指導よろしくお願いいたします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-04-12 22:01
こんにちは。

リンクサーバー を作成することで実現できると思います。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnvs60/htm/vs6/sqlinkserv.asp

のっぴき
会議室デビュー日: 2006/02/06
投稿数: 5
投稿日時: 2006-04-12 22:17
ueさん
回答ありがとうございます。
参考になりました。
リンクサーバーを作成すると確かに解決できそうです。
がしかし、それ以外の解決方法はないでしょうか?
(他条件によりリンクを張ることができないんです。すみません。)

現在「OPENROWSET」を使って解決できないかと模索中ですが、
見当違いでしょうか?

ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-04-12 22:39
ueです。
引用:

現在「OPENROWSET」を使って解決できないかと模索中ですが、
見当違いでしょうか?


OPENROWSET でいけます。
のっぴき
会議室デビュー日: 2006/02/06
投稿数: 5
投稿日時: 2006-04-13 10:16
引用:

OPENROWSET でいけます。



ueさん、ありがとうございます。
「いける」という言葉を頂き、ある程度自信をもって考えられそうです。

のっぴき
会議室デビュー日: 2006/02/06
投稿数: 5
投稿日時: 2006-04-13 11:43
ちなみに以下に対する、皆さんの考え、もしくは正解を教えてください。

問 : 「リンクサーバを張る」ことはサーバ(リンクを張るほう、張られるほう)に負荷をかけることになるのでしょうか?

ueさんに「リンクサーバー」の解決策をいただき、実践しようとすると、
上司に「負荷が高そうだから、別の解決策を見つけて」と言われました。
(↑私が研修中で、文系SEなのがバレバレですね…)

果たして本当にリンクを張ることは負荷が高いのでしょうか?
「OPENROWSET」を使ったところで、変わらないような気がするんですけど…。


[ メッセージ編集済み 編集者: のっぴき 編集日時 2006-04-13 12:54 ]
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-04-13 12:22
ueです。
引用:

「OPENROWSET」を使ったところで、変わらないような気がするんですけど…。


私もそう思います。

リンクサーバーとは OLE DB プロバイダを用いて SQL Server のインスタンスとデータソースとを接続する機能です。データソースへのショートカットを作っておくイメージですね。
OPENROWSET や OPENDATASOURCE も OLE DB プロバイダを用いてデータソースに接続するという点はリンクサーバーと共通です。

負荷の高い低いは実行される T-SQL 次第でしょうから、リンクサーバーを張ったからといってそれが直接サーバ負荷の増大に繋がるわけではありません。

[ メッセージ編集済み 編集者: ue 編集日時 2006-04-13 12:26 ]
1

スキルアップ/キャリアアップ(JOB@IT)