0

我需要从 Access 97 包装数据库(围绕旧的悖论表)读取数据并将其插入 SQL Server 2012。到目前为止,我发现的最简单的方法是在 Access 97 中编写一个管道数据库,该数据库检索访问数据并插入将其放入链接的 SQL Server 表中。任何关于如何更好地管理此问题的想法将不胜感激。

我已经链接了一张 SQL Server 表,但它不允许我插入数据。链接的表在模式“push”中称为“students”,这是我链接到的表。但是,插入数据时出现的错误是“找不到对象 dbo.students”。用于连接的用户帐户(也称为“push”的用户)拥有模式“push”并具有默认模式“push” - 所以我不知道它为什么要尝试连接到 dbo。在 Access 的 MSysObjects 表中,链接表的 ForeignName 设置为 push.students。当我打开链接表时,我可以从 push.students 中看到正确的数据集。任何人都可以帮忙吗?

4

1 回答 1

0

好吧,事实证明这是我自己的错。

对于其他有类似(看似)问题的人,原因是我在 push.students 上设置了一个触发器,该触发器将(除其他外)合并到 dbo.students 中。显然,触发器是由“推送”用户执行的,该用户无权修改 dbo.students - 因此失败。删除触发器,一切都已排序!

更新: 我仍然需要触发器,所以我将它设置为在不同的用户下运行 - dbo 帐户有权执行需要执行的操作。这避免了向我的受限“推送”帐户授予公开权限的麻烦:

CREATE TRIGGER <schema_name>.<trigger_name>
    <schema_name>.<table_name> WITH EXECUTE AS <user_name>

等等等等。希望对某人有所帮助!

于 2013-06-26T02:35:09.367 回答