![]() |
1
10
见 this link . 其想法是通过mysql-odbc驱动程序将mysql数据库添加为SQL Server中的链接服务器。然后,您可以通过SSMS在MySQL数据库上执行任何您喜欢的操作,包括将数据复制到SQL Server中。 恭喜你在RDBMS世界里进步! |
![]() |
2
5
SSIS设计用于执行此类操作。第一步是手动绘制出新结构中每个数据块的位置。因此,旧表有四个字段,在新的结构文件ds1和2中,转到表A,字段3和4转到表B,但您还需要从表A中自动生成ID。请记下数据类型更改的位置,您可能需要进行调整,或者在以前不需要数据的情况下需要文件。 我通常做的是创建临时表。将非规范化形式的数据放入一个临时表中,然后移到规范化的临时表中,在那里进行清理,并在将新ID添加到临时表中后立即添加它们。如果要从非规范化数据库移到规范化数据库,需要做的一件事是,在将父表插入实际的生产表之前,需要消除父表中的重复项。您可能还需要进行数据精简,因为新结构中可能存在旧结构或数据转换问题中不需要的必需文件,因为需要移动到更好的数据类型(例如,如果您在varchar字段中将日期存储在旧数据库中,但在新数据库中正确移动到datetime,则可能会有一些记录没有有效日期。 您需要考虑的另一个问题是如何将旧记录ID转换为新记录ID。 这不是一个简单的任务,但如果你花时间,有条理地工作,它是可行的。现在不是尝试捷径的时候。 |
![]() |
3
0
您需要的是一个ETL(提取、转换、加载)工具。 |
![]() |
4
0
我真的不知道一个“ETL”工具能给你带来多大的帮助,这取决于原始和新的数据库设计。在我的职业生涯中,我需要做的不仅仅是一些数据迁移,我们通常需要设计一个特殊的实用程序,用旧数据库中的记录更新一个新的数据库,是的,我们用所有的更新/插入语句对其进行编码,以转换数据。 我不知道您的数据库有多少个表,但是如果它们不太多,那么您可以考虑使用Grunt根目录。这是一种技术,它终究会起作用。 |
![]() |
5
0
如果您转到SSMS中的数据库并右键单击,则“任务”下应该有“导入数据”选项。你可以试着用它。它基本上只是一个向导,它为您创建一个SSIS包,然后它可以自动为您运行,或者您可以保存该包,然后根据需要进行更改。 最大的问题是您需要如何转换数据。这涉及到很多细节,但您不包括这些细节(而且这些细节可能太多了,您无论如何都不能包括在这里)。 我确信ssis可以处理您需要做的任何转换,以将其从旧格式更改为新格式。另一种选择是将表导入到MS SQL,就像导入临时表一样,然后使用SQL代码将数据转换为3NF表。这完全取决于你对什么最满意。如果您选择第二条路径,那么可以使用我在SSMS中提到的导入过程。它甚至可以为您创建目标表。只要确定你给他们起了独特的名字,也许在他们前面加上“stg_uuu”之类的词。 Davud提到了链接服务器。这绝对是你可以走的另一条路(而且得到了我的赞成票)。就个人而言,我更喜欢先将表复制到MS SQL中,因为链接服务器有时会有一些奇怪之处,尤其是在数据类型不在不同提供程序之间映射时。如果必须重新运行或更正部分数据,那么将所有表都保存在MS SQL中可能会更快一些,并节省时间。不过,正如我所说,链接服务器方法可能也会很好。 |
![]() |
6
0
我已经朝另一个方向做了这件事,而且SSIS工作得很好,尽管我可能需要使用脚本任务来处理轻微的数据类型异常。 SSIS does ETL . |
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
|
Kugelfisch · 用php为数据库加密数据 1 年前 |