Ms access Access 97和SQL Server

Ms access Access 97和SQL Server,ms-access,odbc,sql-server-2012,Ms Access,Odbc,Sql Server 2012,我需要从Access 97包装器数据库(围绕旧的paradox表)读取数据,并将其插入SQL Server 2012。到目前为止,我找到的最简单的方法是在Access 97中编写一个导管数据库,它检索Access数据并将其插入链接的SQL Server表中。如果您有任何关于如何更好地管理此问题的想法,我们将不胜感激 我已在中链接了一个SQL Server表,但它不允许我插入数据。链接表在模式“push”中称为“students”,这就是我链接到的表。但是,插入数据时出现的错误是“找不到对象dbo

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


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

好吧,原来是我自己的错

对于任何其他有类似(看起来)问题的人来说,原因是我在push.students上设置了一个触发器,该触发器将(除其他外)合并到dbo.students中。显然,触发器是由“推送”用户执行的,该用户没有修改dbo.students的权限,因此失败。卸下触发器,它已全部排序

更新: 我仍然需要触发器,所以我将它设置为在另一个用户下运行—dbo帐户,该帐户有权执行需要执行的操作。这避免了将open slather权限授予我的受限“推送”帐户的肮脏行为:

CREATE TRIGGER <schema_name>.<trigger_name>
    <schema_name>.<table_name> WITH EXECUTE AS <user_name>
创建触发器。
. 执行为
等等,希望能帮助别人