P
ProgramFan
Unregistered / Unconfirmed
GUEST, unregistred user!
对普通视图(指不含有计算列的)的新建、修改是十分简单的,直接操作就能完成。
但是删除就成了大麻烦。
请问各位大侠有没有好的办法解决删除问题?(即直接删除基表)
为了能够对此视图进行更新、删除操作,我仔细的查看了SQLSERVER 2000 的帮助,得到以下信息:
-----------------------------------------
使用 INSTEAD OF 触发器
可以在表或视图上定义 INSTEAD OF 触发器;然而,INSTEAD OF 触发器对扩展视图能支持的更新类型最有用。
例如,INSTEAD OF 触发器能够提供逻辑以通过视图修改多个基表,或者修改包含以下列的基表:
timestamp 数据类型
计算列 ^^^这是重点
标识列
我在视图上建了一个触发器
CREATE TRIGGER [TriTESTDELInsteadDel] ON [dbo].[TestDel]
INSTEAD OF DELETE
AS
DELETE Table2 where a in (Select a from deleted)
在程序中删除并没有只删除指定的TABLE2中的记录!
在实际使用中发现对视图进行删除操作时触发器并不工作,
我发现在Enterprise Manager->触发器属性中创建任何内容(INSERT或UPDATE或DELETE )
的 INSTEAD 触发器都会报错,
错误信息:错误5:[sql-dmo]代码执行异常错误:EXCEPTION_ACESS_VIOLATION
Q:这个错误是怎么回事?
阿liang
Email DinkySoft@163.com
收到给分!
但是删除就成了大麻烦。
请问各位大侠有没有好的办法解决删除问题?(即直接删除基表)
为了能够对此视图进行更新、删除操作,我仔细的查看了SQLSERVER 2000 的帮助,得到以下信息:
-----------------------------------------
使用 INSTEAD OF 触发器
可以在表或视图上定义 INSTEAD OF 触发器;然而,INSTEAD OF 触发器对扩展视图能支持的更新类型最有用。
例如,INSTEAD OF 触发器能够提供逻辑以通过视图修改多个基表,或者修改包含以下列的基表:
timestamp 数据类型
计算列 ^^^这是重点
标识列
我在视图上建了一个触发器
CREATE TRIGGER [TriTESTDELInsteadDel] ON [dbo].[TestDel]
INSTEAD OF DELETE
AS
DELETE Table2 where a in (Select a from deleted)
在程序中删除并没有只删除指定的TABLE2中的记录!
在实际使用中发现对视图进行删除操作时触发器并不工作,
我发现在Enterprise Manager->触发器属性中创建任何内容(INSERT或UPDATE或DELETE )
的 INSTEAD 触发器都会报错,
错误信息:错误5:[sql-dmo]代码执行异常错误:EXCEPTION_ACESS_VIOLATION
Q:这个错误是怎么回事?
阿liang
Email DinkySoft@163.com
收到给分!