簡體   English   中英

為每行插入一系列值的最簡潔方法?

[英]Most concise way to insert a series of values for each row?

為表中的每一行 插入一系列值的最簡潔方法是什么? 是否可以不使用循環或游標來完成?

例如,假設貓,狗和松鼠都共享行為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
-----------------------------

可以使用一個簡單的插入語句來完成:

insert into table_2 (AnimalId,BehavoirId)
select t1.AnimalId , t3.BehavoirId from table_1 t1
cross join table_3 t3

假設行為在table_3中

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM