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

SQLServer初心者です。
使用DBはSQLServer2005です。

SQLServerではInsert文でサブクエリは使用できませんか?

例)
INSERT INTO TmpA (a,b) VALUES (
1,(SELECT TmpB.b FROM TmpB))

を実行しましたところ、
『メッセージ 1046、レベル 15、状態 1、行 12
このコンテキストではサブクエリは許可されません。スカラ式だけが許可されます。』
とのエラーが発生しました。

何らかの工夫で実装できる方法がありましたら、
教えて下さいませんか?

A 回答 (3件)

>ご回答下さった方法ですと、


>同じ形式のテーブルをそのままInsertは可能なんですね。

>今回は、固定値と別テーブルからの情報との両方を
>1つのInsert文に含めることが可能な活用方法が見つけられずに
>困っております。
→例は固定値と別テーブルからの情報を含めますから、まだ、何が
出来ないですか?

>例)
>INSERT INTO TmpA (a,b) (SELECT 1,b FROM TmpB)
→1 は 固定値よね
 b は 別テーブルからの情報
 同じ形式のテーブルには限らないです。
    • good
    • 0
この回答へのお礼

何度もありがとうございます。
ご指摘の通りですね。
その方法で工夫してみます。

お礼日時:2007/05/08 15:38

insertの構文は、大きく分けて二つあります。



(1)insert into 表名[(列名,列名,...)] values(値,値,...)
(2)insert into 表名[(列名,列名,...)] select文

(2)のselect文を指定する方法では、他表(RDBMSによっては自表も)からデータを検索して、その結果を格納できます。select文の選択リストには、定数も指定できます。

【SQL例】
INSERT INTO TmpA (a,b) select 1,b FROM TmpB
    • good
    • 0
この回答へのお礼

ありがとうございました。
SELECT文に定数を指定する、という概念がありませんでした。
参考にさせて頂きます。

お礼日時:2007/05/08 15:39

例を挙げますから、あなたの実装したいことにより、


活用してください。

例)
INSERT INTO TmpA (a,b) (SELECT 1,b FROM TmpB)
    • good
    • 0
この回答へのお礼

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

ご回答下さった方法ですと、
同じ形式のテーブルをそのままInsertは可能なんですね。

今回は、固定値と別テーブルからの情報との両方を
1つのInsert文に含めることが可能な活用方法が見つけられずに
困っております。

お礼日時:2007/05/08 10:51

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