【发布时间】:2011-05-22 02:13:15
【问题描述】:
我有以下表结构
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。
所以WorkItems 确实有 3 个外部参照表。还是在WorkItem 表中放置RequirementId、NoticeId 和EventId 会更好,其中1 列将有一个值,而其他2 列将为空?希望这一切都有意义。谢谢。
【问题讨论】:
标签: sql sql-server sql-server-2008