web-dev-qa-db-ja.com

sys.serversでサーバー「dbo」が見つかりませんでした

データベースにクエリを実行するサービスがたくさんあります。それらはすべて正常に動作しますが、ストアドプロシージャを呼び出す1つのサービスで次のエラーが発生します。

Sys.serversでサーバー「dbo」が見つかりませんでした。正しいサーバー名が指定されていることを確認してください。必要に応じて、ストアドプロシージャsp_addlinkedserverを実行して、サーバーをsys.serversに追加します。

他のすべてのストアドプロシージャが正常に機能し、これが機能しない理由がわかりません...

ちなみに、私はデータアクセス層としてSubSonicを使用しています。

13
Lieven Cardoen

余分な「。」があるようです。 (または2つ)マッピング内-つまり、server.database.schema.objectを見つけようとしています。迷点/疑わしいエントリがないかマッピングを確認してください。

13
Marc Gravell

設定ファイルでデフォルトサーバーとして指定したサーバーからselect name from sys.serversを実行してください。

ここでの名前の列の値は、レポートクエリで使用されるサーバー名と一致する必要があります。

例:serverXXX.databasename.schema.tablename

serverXXXはselect name from sys.serversの結果に含まれているはずです。そうでない場合、取得したとおりにエラーが発生します。

15
prasad

また、サーバー名があなたが思っているものと一致していることを確認してください。 SQL Serverが実行されているホストの名前を変更する場合は、SQLServerの名前も変更する必要があります。

http://www.techrepublic.com/blog/datacenter/changing-the-name-of-your-sql-server/192

4
J Rocklin

同じ例外で別の問題が発生したので、誰かがそれに遭遇した場合はここに投稿します:

同義語でサーバー名を指定する場合は注意してください。ステージングマシンと本番環境で異なるサーバー名を使用しましたが、同じ「サーバーが見つかりません」というエラーが発生しました。

(とにかく同義語をあまり使用するべきではないと思いますが、一部の移行シナリオでは役立ちます)

1
Jonas Stensved