- 締切済み
T-SQLで一時テーブルの名前を毎回変更できるストアドを作りたい
お世話になります。 初歩的な質問で恐縮ですがご教示いただければ幸いです。 T-SQLでグローバル一時テーブルの名前を毎回変更できるストアドを作り、Access2003アプリから実行させる予定です。 ストアドに、CREATE TABLE [dbo].[@tablename]のように書き、 ストアド実行時に@tablenameの値を ##ABC のように入力したのですが、テーブルはtempdbではなく、しかもテーブル名は@tablenameでテーブルが作成されてしまいます。 CREATE TABLE [dbo].@tablename のように[]をとると ストアド自体を作成できずエラーになってしまいます。 宜しくお願いします。 create PROCEDURE [dbo].[ストアドプロシージャー名] (@tablename nvarchar(255)) AS BEGIN from SET NOCOUNT ON; CREATE TABLE [dbo].[@tablename] <以下省略>
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
>アドホッククエリにするしかないですかね。 SQL Serverでは、そう呼ぶのですね。 そういうことだと思います。
- plutoscp
- ベストアンサー率0% (0/1)
一時テーブルの概念について、先に以下の http://www.microsoft.com:80/japan/sql/prodinfo/compare/fororacle/sqlserver_02_chap1_08.mspx ローカル一時テーブルを使えばテーブル名を変えなくても良いとおもいます。
お礼
ご回答ありがとうございます。 今回は別のセッションでも同じ一時テーブルを参照したいことや その他の条件もあり、グローバルを採用してます。 何かよい方法はありませんでしょうか? ストアドではなくアドホッククエリにするしかないですかね。
お礼
ご連絡ありがとございました。 今回はアドホッククエリで対応したいと思います。