使用一个insert命令将多个记录插入表中的语法?

时间:2012-02-28 19:50:36

标签: sql sql-server sql-server-2008

我正在编写一个存储过程,我正在声明一个临时表。我需要从我已编写的查询中查询数据库中的多行到该表中。然后我正在对该临时表进行另一次查询。原因很难解释,但它基本上是一种解决方法。反正...

实际的查询太长了,不能放在这里,但它基本上就是这样。

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,但我认为我的语法不正确。如果有人能提供帮助那就太棒了。

1 个答案:

答案 0 :(得分: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绝对毫无意义。它为什么存在?