Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 数据库间的自动信息传输_Sql Server 2008_Ms Access 2010 - Fatal编程技术网

Sql server 2008 数据库间的自动信息传输

Sql server 2008 数据库间的自动信息传输,sql-server-2008,ms-access-2010,Sql Server 2008,Ms Access 2010,我有一个应用程序,它使用Access数据库来存储记录。此应用程序是第三方应用程序,无法更改,但我有能力打开数据库并查看它创建的所有记录 我想知道的是,当在Access中创建记录时,有没有一种方法可以告诉Access向SQL数据库中的表发送新记录。这需要在没有任何用户干预的情况下完成。在完美世界中,此应用程序将直接与SQL对话,但如果软件继续与Access对话,然后Access与SQL对话,我会接受一个不太完美的世界。Access 2010引入了事件驱动,其行为类似于触发器。后插入数据宏可以在另一

我有一个应用程序,它使用Access数据库来存储记录。此应用程序是第三方应用程序,无法更改,但我有能力打开数据库并查看它创建的所有记录


我想知道的是,当在Access中创建记录时,有没有一种方法可以告诉Access向SQL数据库中的表发送新记录。这需要在没有任何用户干预的情况下完成。在完美世界中,此应用程序将直接与SQL对话,但如果软件继续与Access对话,然后Access与SQL对话,我会接受一个不太完美的世界。

Access 2010引入了事件驱动,其行为类似于触发器。后插入数据宏可以在另一个本地访问表中创建记录,但不幸的是

数据宏中不允许包含链接表、操作查询和数据库引用的查询

因此,您不能在Access中使用After Insert data宏将新记录推送到链接的SQL Server表中

但是,您可以使用SQL Server中的计划作业从已在SQL Server中设置为链接服务器的Access数据库中提取新记录。例如,假设我们在Access中有一个名为[查询]的表

ID-自动编号递增,主键 查询日期-日期/时间 联系人姓名-文本255

以及SQL Server中相应的[dbo].[Inquires]表

ID-int,主键 查询日期-日期时间 联系人姓名-nvarchar255

我们可以将Access数据库设置为SQL Server中名为ACCDBDATA的链接服务器,然后让SQL Server每隔一段时间运行一次计划作业,以便使用下面的T-SQL语句从Access数据库中提取新记录

插入dbo.Inquiries ID、InquiryDate、ContactName 选择ID、查询日期、联系人姓名 从ACCDBDATA…查询 其中ID>从dbo.Inquiries中选择ISNULLMAXID,0
您说过此应用程序是第三方应用程序,不能更改。。。这意味着您需要一种获取新数据的外部方法。是的,您可以创建另一个Access数据库,将其链接到表,并使用计时器监视新数据。然而,这与触发“新记录”的触发器不同。