- PR -

SQL Server 2005 リンクサーバ設定方法について

1
投稿者投稿内容
スピア
会議室デビュー日: 2006/07/03
投稿数: 5
投稿日時: 2006-07-03 17:15
初めて投稿します。よろしくお願いします。

SQL Server 2005 がインストールされているPCが2台あります。
コンピュータ名は「PC_ABC」と「PC_XYZ」とします。
やりたい事は、「PC_ABC」に「PC_XYZ」へのリンクサーバを設定し、
「PC_ABC」上のストアドプロシージャで「PC_XYZ」のデータを取得し、
「PC_ABC」のDBに書込みを行いたいのです。

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/howtosql/ht_1_013_8ojd.asp
を参考にして、「PC_ABC」にて以下のSQL文を発行してみたのですが、
エラーとなってしまいます。

-- 実行したSQL文 --
EXEC sp_addlinkedserver
@server = 'ServerName1'
,@srvproduct = 'SQL Server'
,@provider = 'SQLOLEDB'
,@datasrc = 'PC_XYZ\\SQLSERVER2005'
EXEC sp_addlinkedserver
@server = 'ServerName2'
,@srvproduct = 'SQL Server'
,@provider = 'SQLOLEDB'
,@datasrc = 'PC_ABC\\SQLEXPRESS'
EXEC sp_configure 'remote access', 1
RECONFIGURE
GO

-- エラー内容 --
メッセージ 15428、レベル 16、状態 1、プロシージャ sp_addlinkedserver、行 37
製品 'SQL Server' のプロバイダまたは任意のプロパティを指定できません。


各パラメータは以下を参考にしたのですが、恐らく私の読解できていないのだと思います。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/tsqlref/ts_sp_adda_8gqa.asp

エラーを回避する方法、また、最終的に「やりたい事」を行える方法を模索していますが
出口が見えない状況です。

詳しい方いらっしゃいましたらご教授願います。

TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2006-07-03 17:32
おつかれさまです。
TimberLandChapel です。

こちらをどうぞ。
http://msdn2.microsoft.com/ja-jp/library/ms188279.aspx

----------
TimberLandChapel
http://blogs.timberlandchapel.com/blogs/timberlandchapel/
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-07-03 17:34
こんにちは。

SQL Server 2005 版 Books Online の sp_addlinkedserver (Transact-SQL) をご覧ください。
コード例の A.Microsoft SQL Native Client OLE DB プロバイダを使用する の二番目が正しく動作する書式だと思います。
コード:
EXEC sp_addlinkedserver   
   @server='S1_instance1', 
   @srvproduct='',
   @provider='SQLNCLI', 
   @datasrc='S1\instance1'


_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
スピア
会議室デビュー日: 2006/07/03
投稿数: 5
投稿日時: 2006-07-03 18:28
TLCさん、ueさん。こんにちは。
早速のご返答、ありがとうございます。

ただ、大変申し訳ないことに、別のやり方で成功してしまいました。
Management Studio のGUI上で「新しいリンクサーバー」ウインドウから作成する方法です。
当初、この方法でうまくいかなかったので質問させていただいたのですが、
色々やっているうちにGUIの方で成功してしまいました。

今後、私のような初心者が見てくださることを想定して、メモを残しておきます。
<リンクサーバーの設定方法>
・「PC_ABC」の[サーバーオブジェクト]の[新規作成]-[新しいリンクサーバー]
・「全般」ページ
   リンクサーバー:PC_XYZ
   サーバーの種類:SQL Server
・「セキュリティ」ページ(必要に応じて)
   ローカルログイン:sa
   権限の借用:<チェック有>
   上記一覧で定義されないログインの接続方法:このセキュリティコンテキストを使用する
     リモートログイン:sa / パスワード:<sa のパスワード>
・「OK]押下

<リンクサーバーの使用方法>
SELECT * FROM PC_XYZ.my_DB_NAME.dbo.my_TABLE_NAME


TLCさん
教えていただいたページも一通り読んではいたのですが、理解できていませんでした。
今後、じっくりと取り組みたいと思います。

ueさん
教えていただいた方法で実行したところ、sp_addlinkedserver は成功しました。
ただ、試験環境が整っておらず、(恥ずかしながら)sa ユーザのパスワードが
誰もわからないという状況だったため、作成したリンクサーバを使うときに
エラーになってしまいました。
「PC_ABC」にはローカルユーザでログインし、「PC_XYZ」にも同じユーザでログインしようと
している為と思われます。
ここまでで諦めてしまいました。。

「リンクサーバーってなに?」という段階からの調査だったので苦労しましたが、
暖かいアドバイスをいただき、感謝しております。
今後もよろしくお願いします。
1

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