在没有循环的情况下在临时表格中插入多行
问题描述:
这个问题已经被问了好几次了,但是这个解决方案并不适合我。我不知道为什么。在没有循环的情况下在临时表格中插入多行
其实我试图创建SQL查询一个临时表,其中我在临时表中使用SELECT INTO插入一些记录,但每次它返回一个空行:
这里就是我想:
Create Table #TempTable
(
EntityID BIGINT
)
INSERT INTO #TempTable (EntityID)
SELECT pkEntityID FROM Employee WHERE EmpID = 45
Select * from #TempTable
对应于45,Employee表中有10行。是否就像我必须做一些其他的事情或像结构这样的循环,因为我们只能一次在表中插入一行?
答
在评论中已经说明了这一点,所有这些都是我投票通过的,但是要回答你的问题......除此之外你不需要做任何事情。源表中显然不存在EmpID = 45
。这里有一个重复的例子:
Declare @Employee Table (pkEntityID bigint, EmpID int)
insert into @Employee (pkEntityID, EmpID)
values
(32168123,45),
(89746541,45),
(55566331,45),
(45649224,12)
Create Table #TempTable
(
EntityID BIGINT
)
INSERT INTO #TempTable (EntityID)
SELECT pkEntityID FROM @Employee WHERE EmpID = 45
Select * from #TempTable
drop table #TempTable
答
你有意外也创造了Employee表中的主数据库和当前连接到主数据库?
你确定'SELECT pkEntityID FROM Employee WHERE EmpID = 45'返回10行吗? – GurV
你的查询是好的。没有行匹配条件'EmpId = 45'。 。 。或者当你检查'#TempTable'中的行时你犯了一个错误。 –
是的。我确定。它会一直返回多行,我必须收集表中的所有ID以便与另一个表一起加入。 – Sweetie