この (私には奇妙な) 動作に関連する BOL 情報を教えてもらえますか?
簡単なクエリのために、同じテーブル(同じデータベース名、差分サーバー)の本番コピーとステージングコピーに参加する必要がありました。したがって、完全修飾された結合が必要でした。
これはエラーです:
SELECT top 10 *
FROM [172.26.196.105\Staging].[DbName].[dbo].[TableName]
これは機能します:
SELECT top 10 *
FROM [USCASQL01\STAGING].[DbName].[dbo].[TableName]
編集:明確化...明らかに結合ではありません。これらの選択は、ステージングデータベース/テーブルの完全修飾名を組み立てただけです。これはリンク サーバーではありませんが、私が接続しているサーバーです。
もちろん、これらは同じインスタンスを参照しています。オブジェクト エクスプローラーに表示される IP address\InstanceName を使用すると、「sys.servers にサーバー 'IP address\InstanceName' が見つかりませんでした」というエラーが返されました。確かに、sys.servers は computerName\InstanceName を保存しますが、これは機能します。
一方が機能し、もう一方が機能しないのはなぜですか? IOW、オブジェクト エクスプローラーで問題なく IP/インスタンス名を解決できるのに、TSQL で IP/インスタンス名を解決できないのはなぜですか? ところで、私たちは頻繁に IP を sys.servers に保存していますが、これはたまたまそうではありませんでした。
また、IP のわかりやすい名前のエイリアスを作成できるユーティリティである SQL Server7 (昔) を思い出します。今は見つからないのですが、まだありますか?
ティア