declare @node int = 9044;
DECLARE @sqlCommand NVARCHAR(MAX) =
(
'SELECT * FROM [@node].[database_name].dbo.table_name'
);
DECLARE @paramList NVARCHAR(400) =
(
'@node int'
)
exec sp_executesql @sqlCommand, @paramlist, @node;
これが私が実行しようとしている単純なクエリです。9044は大丈夫です。そのクエリの実行は通常完全に機能します(明らかに、dbとtableの名前を削除しました)。何が悪いのか完全にはわかりません。私が得るエラーは次のとおりです。
メッセージ7202、レベル11、状態2、行1sys.serversでサーバー'@node'が見つかりませんでした。正しいサーバー名が指定されていることを確認してください。必要に応じて、ストアドプロシージャsp_addlinkedserverを実行して、サーバーをsys.serversに追加します。
この問題を修正する方法に関するアイデア、またはクエリを記述して使用する必要がある場合EXEC (@sql)