У меня есть следующие структуры таблиц
CREATE TABLE [dbo].[WorkItem](
[WorkItemId] [int] IDENTITY(1,1) NOT NULL,
[WorkItemTypeId] [int] NOT NULL,
[ActionDate] [datetime] NOT NULL,
[WorkItemStatusId] [int] NOT NULL,
[ClosedDate] [datetime] NULL,
)
CREATE TABLE [dbo].[RequirementWorkItem](
[WorkItemId] [int] NOT NULL,
[RequirementId] [int] NOT NULL,
)
CREATE TABLE #RequirmentWorkItems
(
RequirementId int,
WorkItemTypeId int,
WorkItemStatusId int,
ActionDate datetime
)
Я использую таблицу #RequirmentWorkItems
для создания рабочих элементов для требований. Затем мне нужно вставить рабочие элементы в таблицу WorkItem
и использовать значения идентификаторов из таблицы WorkItem
для создания строк перекрестных ссылок в таблице RequirementWorkItem
.
Есть ли способ сделать это без курсора в каждом ряду? И я не могу поместить RequirementId
в таблицу WorkItem
, потому что в зависимости от WorkItemTypeId
WorkItem
может быть связан с Requirement
, Notice
или Event
.
Так что на самом деле есть 3 таблицы внешних ссылок для WorkItems
. Или было бы лучше поместить RequirementId
, NoticeId
и EventId
в таблицу WorkItem
, и один из столбцов будет иметь значение, а другие 2 будут нулевыми? Надеюсь, все это имеет смысл. Спасибо.