テンポラリテーブルを##temp
で作成し、select * into ##temp from tablename
を使用してオンザフライで作成するストアドプロシージャがあります。テンポラリテーブルを削除するストアドプロシージャ
このストアドプロシージャは、グローバルで##
があるにもかかわらず、クエリが実行されたときにこの瞬間のみ削除または利用可能になっているようですが、他のユーザーが知っているものから使用できます。
SSRSを使用して、ストアドプロシージャをプルし、このレポートのドリルスルーを使用して、最初のチャートのみを表示します。第2レポートは、パラメータ経由でアクションリンクを使用する同じストアドプロシージャです。レポートは##temp
テーブルを認識しません。
この背景には、これを回避するための方法があるかどうか、データウェアハウスがないことを覚えておいてください。一時的なテーブルを使用するだけで回避できます。
おかげ
テーブルを永続化する場合は、一時テーブルではなく実際のテーブルを使用します。また、SPは一度だけ実行され、既に存在するテーブルのために後続の実行で失敗します。 SELECT ... INTO ..ではなく、 'INSERT INTO ... SELECT ...'を使用してください。 –
@ChrisPickfordと同意します。 [tempテーブル](https://msdn.microsoft.com/en-us/library/ms174979.aspx)のドキュメントはこちらです。テンポラリテーブルがスコープを離れて使用できなくなることを期待できるときに詳細を記したセクションがあります(途中で、* Temporary Tables *という見出しがあります)。 –
Chrisさん、ありがとうございました。私の上司はクライアントに属しているSQLサーバーについて言及していましたので、テーブルを作成しないようにしましたが、ビューは正しく機能すると思います。 – abs786123