2012-02-28 9 views
1

私は一時テーブルを宣言しているストアドプロシージャを作成しています。私はすでに書いたクエリからそのテーブルに複数の行をデータベースから照会する必要があります。次に、その一時テーブルの別のクエリを実行しています。理由は説明が時間がかかるが、基本的に回避策だ。とにかく...1つの挿入コマンドで複数のレコードをテーブルに挿入する構文はありますか?

実際のクエリは長すぎてここに入れることはできませんが、基本的にこのようです。

DECLARE @a TABLE 
(
    Museum VARCHAR(32), 
    MuseumID INT, 
    Country VARCHAR(32), 
    City VARCHAR(32), 
    Paintings VARCHAR(32), 
    Sculptures VARCHAR(32) 
); 

今、私はこの一時テーブルに行を挿入する必要があります。

私はこれを試してみましたが、私はそれは私が私からの照会行を挿入するにはどうすればよい

INSERT INTO @a VALUES 
(
    SELECT DISTINCT 
      TOP (100) PERCENT dbo.Museum.Museum, 
          dbo.Musuem.MuseumID, 
          dbo.World. Country, 

      BLAH BLAH BLAH FROM AND WHERE JUNK 
) 

を動作するとは思いません@aへのクエリ?

ありがとうございました。

また、BULK INSERTを試しましたが、私は構文を正しく実行しているとは思われません。もし誰かがそれがすごく助けになるならば。

答えて

4

あなたはINSERT ... SELECTでこれを行うことができます。

INSERT INTO @a 
    SELECT DISTINCT 
      dbo.Museum.Museum, 
          dbo.Musuem.MuseumID, 
          dbo.World. Country, 

      BLAH BLAH BLAH FROM AND WHERE JUNK 

TOP 100 PERCENTは絶対に無意味です。それはなぜそこにあるのですか?

+0

私はうんざりしています。私はそれを取り除くことを恐れているのですか? – broguyman

+0

ところで、DECLAREはよく知られていますか? – broguyman

+0

誰があなたをどこに置くのですか? –

関連する問題