0

あるデータベースから呼び出されるストアド プロシージャを作成していますが、他のデータベースのテーブルにアクセスする必要があります。私たちは、クライアントごとに異なるデータベースを持っています。パラメータに基づいて動的にシノニムを作成しようとしています:

DECLARE @SQL varchar(150)
SET @SQL = 'CREATE SYNONYM synATClaimMatched FOR ' + ... <params> ...
EXEC @SQL

しかし、これにより次のエラーが発生します。

メッセージ 2812、レベル 16、状態 62、行 3
ストアド プロシージャ ''." が見つかりませんでした。

このエラーが発生する理由と修正方法を知っている人はいますか?

4

1 に答える 1

0

あなたの問題は、シノニムやストアド プロシージャとはまったく関係がなく、動的 SQL の無効な構文です。

使用する:

EXEC sp_executesql @sql;

-- or

EXEC(@sql);

私は最初のものを好みますが。理由は次のとおりです。

于 2013-01-18T20:18:01.623 に答える