首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用模式和表更改将数据从MS Access导出到MS

使用模式和表更改将数据从MS Access导出到MS
EN

Stack Overflow用户
提问于 2013-01-09 10:50:20
回答 2查看 4.6K关注 0票数 2

我正在从事旧的C++ MFC项目(> 10岁)。数据库应用程序可用于从MS (2007)迁移到MS (2008年R2),在此过程中我遇到了一些障碍。对于导出数据,我使用了众所周知的(菜单中的“导入”选项),Access和MS在数据类型上有一些不同。变成了一些麻烦。

  1. Access中的列"ID“(Autonumber,not NULL,主键)成为Server中常见的列(int,not NULL,不带任何自动增量)。因此,我在向表中插入新行时出现了许多错误。

  1. 访问中的是/否类型(-1/0;NULL不允许)变为位(1/0/NULL),工作逻辑不应该中断,因为在大多数地方,它比较不等于0: query.Select() .Buff("ID“&code) .FromS("%Table_Name%",NULL) .Where().Str("Aktiv <> 0") .Execute();

为了寻找解决方案,我看到了用于访问的advice to use SSMA ( Server迁移助手)。它更好,更智能,因为它重新创建主/外键,创建检查的,索引。但不幸的是,许多外键的操作更新/删除操作不是级联,而是 not 。模式导入后的警告消息:

MS访问表%表1%上的外键约束"Reference77“可能导致循环或多个级联路径。在Server中,从表%表2%到表%表1%的级联选项设置为无选项。

这并不奇怪,应用程序在删除对象时会出现一些错误,尽管在访问方面一切正常。为了进行测试,我选择了一个删除操作(在应用程序中),得到了错误。我查看了错误消息,并通过SSMS ()更改了No Action -> Cascade中涉及的外键。之后,应用程序中的删除操作成功。

我的问题是:

  1. 我说得对吗?我只需要更改,没有动作,,->,,级联,对于外键,才能使数据库应用程序完全正常工作?或者出现另一个我不知道的问题?
  2. 如何才能实现呢?我希望它是在客户端SQL服务器上应用它的一个很好的解决方案。

谢谢你的帮助,我真的很感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-22 09:46:58

谢谢你的回答。我问题的解决办法是..。直接将数据从Access (2010)导出到Server。我试过:

  1. “Server导入和导出数据”,仅从Access数据库复制数据,没有任何主oк外键,不将自动编号转换为具有标识和自动增量的列。
  2. SQL Server迁移助手进行访问,结果-许多外键丢失了用于更新/删除操作的级联属性。但其他的一切都没问题。
  3. 进入2010!数据库工具-> Server -> ..。使用向导->对于模式和数据来说都是可以的。应用程序可以很好地处理从Access导入的Server数据库。

因此,从对Server的访问直接导出提供了所需的结果。

票数 4
EN

Stack Overflow用户

发布于 2013-01-10 10:36:03

  1. 可能吧,但你还需要测试。
  2. 对于可重用的解决方案,我将编写SSMA创建的数据库的脚本(检查所有类型和外键是否正确)。有了这个脚本,您可以在任意数量的服务器上创建一个空的Server数据库。要填充这些数据库,我需要使用Integration包。通过使用Import向导很容易创建:遍历所有步骤,但是保存包而不是立即运行它。然后,您可以打开这个包并对其进行编辑(如果有必要,可以添加数据转换或任何其他逻辑)。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14233593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档