2016-11-28 9 views
2
select @dbName="DBNAME" 

select Distributorid from [180.552.528.854,21414].[@dbName].DBO.DistributorMaster where Distributorid =XXXXXX 

ERROR: The OLE DB provider "SQLNCLI10" for linked server[180.552.528.854,21414] does not contain the table ""@dbName"."DBO"."DistributorMaster"". The table either does not exist or the current user does not have permissions on that table.は、SQL Serverのリンク接続

+0

'declare @dbName varchar(50)= 'DBNAME';' Declareローカル変数 – Viki888

+1

動的SQLのみです。 –

+0

既に宣言しました – SANJOG

答えて

-1

リンクサーバーを照会すると、次のパターンで完全修飾テーブル名を指定する必要がでパラメータを追加します。 Linked Serversの下のSQL Server Management Studioのヘルプを使用して、リンクされたサーバーにテーブルがリストされているかどうかを確認してください。

EDIT:あなたは完全にこのサイト上の注意すべての手順を実装した場合thisサイトをご確認ください。

も見逃されてきたはずです共通点は以下の通りです:

があなたのsp_addlinkedserverステートメントに", @[email protected]"を追加します。

+0

はいすべて動作していますが、これまでにパラメータを使用していたときはスローエラー – SANJOG

+0

ハードコードされた値でチェックしています – SANJOG

4

お試しください。 動的変数値クエリ。

  declare 
      @dbname nvarchar(max) ='dbName', 


      @query nvarchar(max) ='select Distributorid from [180.552.528.854,21414].[@dbName].DBO.DistributorMaster 
      where Distributorid =XXXXXX' 

      SET @Query=REPLACE(@Query,'@dbname',@dbname) 

      --print(@Query) 

      execute SP_executesql @Query 
+0

@SANJOGはあなたのために働いています。 ? –