SQL Server查询 - 如何将选定的值插入另一个表

时间:2012-12-10 22:25:25

标签: sql-server tsql select insert sql-server-2008-r2

这就是我想要做的事情。

这是选择语句

select Id 
from tblUsersPokemons 
where UserId = 1 and PokemonPlace = 'bag'

现在我想将那些返回的ID插入另一个表中,如下所示:

foreach all returned Ids
   insert into tblNpcBattleUsersPokemons values (Id, 1)

我该怎么做?

3 个答案:

答案 0 :(得分:10)

像这样:

insert into tblNpcBattleUsersPokemons
select Id, 1 from tblUsersPokemons where UserId=1 and PokemonPlace='bag'

答案 1 :(得分:6)

这可以在单个sql调用中完成

insert into tblNpcBattleUsersPokemons (id, [whatever the name of the other column is])
    select Id, 1 from tblUsersPokemons where UserId=1 and PokemonPlace='bag'

我在这里使用了longhand,因为它没有对目标表中列的排序做出任何假设,这可能会随着时间的推移而改变,并使insert语句无效。

答案 2 :(得分:1)

您可以使用INSERT ... SELECT语法将SELECT检索到的集合插入到另一个现有表中。

例如:

INSERT INTO tblNpcBattleUsersPokemons (Id, Val)  -- not sure what the second column name was 
SELECT Id FROM tblUsersPokemons WHERE UserID = 1 and PokemonPlace='bag';