我需要拿一张包含origArticleTable
的{{1}}表并将其拆分为两个表。我需要两个表,因为我必须包含来自其他来源的数据,这些数据不包含所有相同的内容。例如,另一个来源将有一个包含Title,date1, date2,author, articleText, hasVideo, hasImage, ArticleID
的表。
基本上我正在将title, itemDescription, date1, urlLink, comments, uniqueID
移动到“复合”表和元表或支持表中,为此,我所遇到的问题是“当我插入origArticleTable
时,可以我使用插入到CompositeTable
生成的标识填充ArticleMeta
的另一个插入嵌套或其他东西“
我会在这里分解它们:
CompositeTable
我不确定如何做的是将当前表中的数据插入到这两个表中。如果compositeTable
ID (auto-incrementing identity column)
Title
date1
TextContent
ArticleMeta
compositeID
ArticleID
hasVideo
hasImage
author
date2
中没有相应的条目,我无法将数据放入ArticleMeta
。我了解我会在CompositeTable
中插入一个项目并使用CompositeTable
将其余信息插入ID
。
我尝试使用联接设计一个ArticleMeta
语句,将insert-select
和origArticleTable
合并到一个插入CompositeTable
但是在构建任何偶数内容方面都没有成功看起来它会起作用。
非常感谢任何帮助。如果有什么需要更好的解释或任何事情让我知道。
编辑----
这是我试图使用的CompositeTable
混乱。它从我开始就改变了。
insert-select
答案 0 :(得分:1)
如果title是原始表中的唯一键,则执行以下操作。如果原始表中的唯一键不在新表中,则暂时添加,然后将其删除。
DECLARE @T1 TABLE (Title varchar(50), NewID int)
INSERT INTO compositeTable (Title, date1, TextContent)
OUTPUT inserted.Title, Inserted.ID INTO @T1
SELECT compositeTable (Title, date1, TextContent)
FROM origArticleTable
insert into ArticleMeta (compositeID, ArticleID, hasVideo, hasImage, author, date2)
SELECT T1.ID, o.compositeID, o.ArticleID, o.hasVideo, o.hasImage, o.author, o.date2
FROM @T1 T1
INNER JOIN origArticleTable o ON T1.Title = o.Title