我正在编写一个存储过程,我正在声明一个临时表。我需要从我已编写的查询中查询数据库中的多行到该表中。然后我正在对该临时表进行另一次查询。原因很难解释,但它基本上是一种解决方法。反正...
实际的查询太长了,不能放在这里,但它基本上就是这样。
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,但我认为我的语法不正确。如果有人能提供帮助那就太棒了。
答案 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
绝对毫无意义。它为什么存在?