プロが教える店舗&オフィスのセキュリティ対策術

お世話になります。

初歩的な質問で恐縮ですがご教示いただければ幸いです。

T-SQLでグローバル一時テーブルの名前を毎回変更できるストアドを作り、Access2003アプリから実行させる予定です。

ストアドに、CREATE TABLE [dbo].[@tablename]のように書き、
ストアド実行時に@tablenameの値を ##ABC のように入力したのですが、テーブルはtempdbではなく、しかもテーブル名は@tablenameでテーブルが作成されてしまいます。
CREATE TABLE [dbo].@tablename のように[]をとると
ストアド自体を作成できずエラーになってしまいます。

宜しくお願いします。

create PROCEDURE [dbo].[ストアドプロシージャー名]
(@tablename nvarchar(255))
AS
BEGIN
fromSET NOCOUNT ON;
CREATE TABLE [dbo].[@tablename]
<以下省略>

A 回答 (2件)

>アドホッククエリにするしかないですかね。



SQL Serverでは、そう呼ぶのですね。
そういうことだと思います。
    • good
    • 0
この回答へのお礼

ご連絡ありがとございました。
今回はアドホッククエリで対応したいと思います。

お礼日時:2008/06/27 17:03

一時テーブルの概念について、先に以下の


http://www.microsoft.com:80/japan/sql/prodinfo/c …

ローカル一時テーブルを使えばテーブル名を変えなくても良いとおもいます。

参考URL:http://www.microsoft.com:80/japan/sql/prodinfo/c …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

今回は別のセッションでも同じ一時テーブルを参照したいことや
その他の条件もあり、グローバルを採用してます。

何かよい方法はありませんでしょうか?
ストアドではなくアドホッククエリにするしかないですかね。

お礼日時:2008/06/26 17:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!