ForEach记录在sql server中插入

时间:2011-10-14 16:31:51

标签: sql sql-server

我有三个sql表tblDocumentType (Doctypeid)tblDiscipline (DisciplineID) tblDocType_Discipline

对于Doctypeid中的每个tblDocumentType,我需要插入所有DisciplineID和Doctypeid到tblDocType_Discipline表。

编写SQL查询的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

Insert into tblDocType_Discipline
(DocTypeId,DisiplineId)
SELECT  dt.DocTypeID, d.DisciplineId
FROM dbo.tblDocumentType dt
FULL OUTER JOIN dbo.tblDiscipline d 
ON 1 = 1

我认为你正在寻找一个完整的外部联盟。

答案 1 :(得分:0)

您需要在DoctypeidDisciplineID之间建立关系才能获得所需的结果。

如上所述,提供了类似的内容:

insert into tblDocType_Discipline
select Doctypeid
from tblDocumentType
where DisciplineID in
(
    select DisciplineID
    from tblDisicpline
)

该查询假定您的tblDocumentType表格中包含DisciplineID字段。如果没有,除非您有一个单独的连接表,否则无法创建该关系。