1

table1次のように作成された一時テーブルがあります。

create tabletempdb..table1(id int)

tempdbテーブルは、データベースの所有者によって作成されたものではありません。

以前にストアドプロシージャ内でこのクエリを使用してテーブルにアクセスしようとしたとき(テスト用):

select top 10 * from tempdb..table1

このエラーが発生しました:

Msg 208, Level 16, State 1:
 Server 'SERVER', Procedure 'storedProcedure', Line 30:
 tempdb..table1 not found. Specify owner.objectname or use sp_help to check whether the object
 exists (sp_help may produce lots of output).

しかし、約 1 時間後、同じストアド プロシージャが問題なく実行されました。

その時間中にテーブルが削除されたり再作成されたりすることはなく、この奇妙な動作の理由を見つけることができません。ある種のネーミング ハックを適用することでこれを修正できますが、非常に機密性の高いフローにハックを挿入したくありません。つまり、多くのユーザーがテーブルを削除して作成する可能性があります。

今後回避できるように、誰かがこの動作を説明できるかどうかを尋ねています。

4

0 に答える 0