是否可以在 Access 中执行触发器,在 SqlServer 数据库的表中插入新行?
Posted
技术标签:
【中文标题】是否可以在 Access 中执行触发器,在 SqlServer 数据库的表中插入新行?【英文标题】:Is it possible to do a Trigger in Access that will insert a new row in a table in SqlServer Database? 【发布时间】:2012-01-23 13:30:09 【问题描述】:我有一个 Access 2003 数据库,想在文件表中的新行上添加一个触发器,以便将带有新信息的新行插入到 SqlServer 2008 数据库中的另一个表中?
这可能吗?或者有没有其他更好的方法/工具来完成这个?我会很感激一些代码 sn-ps 开始。
感谢您的真诚帮助!
【问题讨论】:
你是说Access中有一张表,SQL Server中有一张表?如果没有,为什么要在 Access 中创建触发器,而在 2003 年是做不到的。您需要提供更多信息。 您好,感谢您的回答。访问表有 12 个字段。我只对 3- FileName、Subject 和 Origin 感兴趣。 SqlServer 表文件有更多在访问表中找不到的文件。即访问文件是所有文件的子集。理想情况下,我将在 sql server 中有 1 个完整的表,并且访问表中所需的 3 个字段指向该表以获取值。然后在 Accees Form 中创建新文件时,这将在 Sqlserver 中创建一个新行,其中包含 FileName、Subject 和 Origin 以及 Access 中的另一行,包括从 sql server 返回的行 ID 以及其他字段。 【参考方案1】:MS Access 不支持触发器。但是,如果您在表单上插入/更新数据,则可以使用事件和 VBA。这篇文章应该对你有所帮助:Optimizing Microsoft Office Access Applications Linked to SQL Server
【讨论】:
MS Access 2010 具有数据宏,其功能类似于触发器。 是的,Access 2010 确实有数据触发器。这些是真正的触发器,这是在更新时运行的真正的引擎级代码。事实上,即使您没有安装 Access 并使用 com 自动化更新表,甚至来自 vb.net 甚至 FoxPro 的 ODBC,代码也会运行。【参考方案2】:最后,我创建了一个 Windows 服务,该服务将通过在最后一个 rowID 主键上保存一个索引来检查 Access Files 表中的新行。读取新行并将其数据发送到 Sql Server 数据库。
触发器本来是更好的方法,但 db 在 Access 2003 上。该服务每天运行两次,到目前为止似乎按预期工作。
【讨论】:
以上是关于是否可以在 Access 中执行触发器,在 SqlServer 数据库的表中插入新行?的主要内容,如果未能解决你的问题,请参考以下文章