繁体   English   中英

在SQL Server 2008中合并2个表的最佳方法

[英]Best way to Merge 2 tables in SQL Server 2008

我正在尝试将两个相似的表(不完全)合并到一个表中。 遇到很多错误关于最佳方法的任何想法?

你有没有考虑过:

  1. 创建一个视图以使用where子句将两个表连接起来,以限制行数,以便在视图设计期间更快地执行
  2. 视图正确之后,执行条件为1 = 2的“ select into”。 这将为您提供一个空表,其中包含视图中的列名和数据类型
  3. 编辑表设计以包括标识列,调整数据类型,列名称等
  4. 将视图中的数据插入表中
  5. 根据需要创建索引和FK
  6. 必要时重命名表
  7. 放下视图

当心交易日志增长

我很困惑,您将问题标记为SQL Server 2005,但您问的是2008? 如果您确实在使用2008,请尝试使用MERGE(Transact-SQL) ,该功能仅在SQL Server 2008上可用。

我看到tblDVPage中没有Type字段来保存tblDVpagecategory.type,如果要将后者合并到前者中,那么您可能需要为其创建一个新列,或者使用tblDVPage.pageType来保存tblDVpagecategory.type。

无论哪种方式,您最终都会得到与此类似的东西:

INSERT INTO tblDVPage(Title, ParentId, PageType, MenuOrder)
SELECT Title, ParentId, Type, MenuOrder
FROM tblDVpagecategory

显然,您在tblDVpagecategory中使用的旧ID将消失,并在将这些项目合并到tblDVPage中时重新生成。 如果您想通过新列来区分什么,但是取决于您的方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM