Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 Can';t使用INSTEAD OF触发器更新视图_Sql Server_Ms Access_View_Ms Access 2007_Adp - Fatal编程技术网

Sql server Can';t使用INSTEAD OF触发器更新视图

Sql server Can';t使用INSTEAD OF触发器更新视图,sql-server,ms-access,view,ms-access-2007,adp,Sql Server,Ms Access,View,Ms Access 2007,Adp,我的数据库是一个Access数据项目,绑定到SQL Server 2005后端。我试图将表单绑定到使用而不是触发器的视图。Access认为视图是不可更新的,因此它将表单设置为只读;显然它没有考虑到触发器 我怀疑问题在于SQL Server的元数据表示视图不可更新。查询信息\u架构。例如,视图显示是可更新的=否。尽管如此,我肯定可以使用更新语句或使用SSMS GUI来更新视图 有人知道我可以用什么方法让Access相信这个视图确实是可更新的吗?我知道还有其他方法可以获得此表单的读写访问权限,但我计

我的数据库是一个Access数据项目,绑定到SQL Server 2005后端。我试图将表单绑定到使用
而不是
触发器的视图。Access认为视图是不可更新的,因此它将表单设置为只读;显然它没有考虑到触发器

我怀疑问题在于SQL Server的元数据表示视图不可更新。查询
信息\u架构。例如,视图
显示
是可更新的
=否。尽管如此,我肯定可以使用
更新
语句或使用SSMS GUI来更新视图


有人知道我可以用什么方法让Access相信这个视图确实是可更新的吗?我知道还有其他方法可以获得此表单的读写访问权限,但我计划使用此视图限制某些用户访问非常特定的数据子集,如果我能将所有这些数据封装在这一个视图中,事情就会变得容易得多。

Access需要链接表上的PK才能更新它——我认为这是为了让JET(或任何新的)引擎能够唯一地识别要更改的行


这意味着您需要将此视图转换为索引视图,

FYI,
INFORMATION\u SCHEMA。视图
将告诉您每个视图都不可更新:@JNK谢谢,我认为每个视图都标记为不可更新似乎很奇怪。有没有更好的方法来检查查询是否可更新?有什么线索Access是如何决定的吗?我不是Access专业人士,但看起来你可能需要在视图上创建一个唯一的索引,Access才能更新它。是的,Access需要PK来进行任何更改。我不熟悉Access数据项目,但熟悉常规的旧链接表系统,当Access无法确定主键时,我似乎还记得它曾经提供了识别唯一列的选项?有趣的是,我实际上已经设置了所有与索引视图相关的选项,然后因为更新的性能而决定不使用它。但如果这就是它所需要的,我会很高兴让它工作。我现在就试试看。那可能是不可能的——我相信任何视图都需要PK才能更新。Access可能只是不允许更新引用多个对象的视图——我不确定它是否有能力检查其他系统表,以确保插入/更新/删除时存在instead of触发器。