在表格中 每行 插入一系列值 的最简洁方法是什么?可以在不使用循环或游标的情况下完成吗?
例如,假设猫,狗和松鼠都分享行为1,2和3:
表1:
===================
Id | Name
===================
1 | Cat
-------------------
2 | Dog
-------------------
3 | Squirrel
表2:
=============================
AnimalId | BehaviorId
=============================
1 | 1
-----------------------------
1 | 2
-----------------------------
1 | 3
-----------------------------
2 | 1
-----------------------------
2 | 2
-----------------------------
2 | 3
-----------------------------
3 | 1
-----------------------------
3 | 2
-----------------------------
3 | 3
-----------------------------
答案 0 :(得分:3)
可以使用简单的insert语句来完成:
insert into table_2 (AnimalId,BehavoirId)
select t1.AnimalId , t3.BehavoirId from table_1 t1
cross join table_3 t3
假设行为在table_3
中答案 1 :(得分:1)
declare @t table (Id int,Name varchar(10))
insert into @t(Id,Name)values (1,'cat'),(2,'dog'),(3,'Squirrel')
declare @tt table (AnimalId int,BehaviourId int)
INSERT INTO @tt(AnimalId,BehaviourId)
select tt.ID,t.ID from @t t
CROSS APPLY (SELECT ID from @t ) tt
Select * from @tt