SQL Server数据库专家或技术支持请进——————〉

rzg 2003-07-09 04:12:35
1、我创建如下两个表:

Test_D:
ID nvarchar(10) PK,
Name nvarchar(10)

Test_M:
ID nvarchar() [PK ,FK],
nMemo nvarchar(50)

2、创建视图TestView:

SELECT dbo.Test_M.ID, dbo.Test_D.ID AS ID1, dbo.Test_M.Name, dbo.Test_D.Memo
FROM dbo.Test_M INNER JOIN
dbo.Test_D ON dbo.Test_M.ID = dbo.Test_D.ID

3、在视图中写如下触发器:

CREATE TRIGGER ForInsert ON [dbo].[TestView]
INSTEAD OF INSERT
AS
SET NOCOUNT ON

INSERT INTO test_M
values(cast(GETDATE() as varchar(20)),user)

SET NOCOUNT OFF

4、在视图中添加一行数据:

insert into TestView
values
('0','0','Sunshine','其它...')

5、可是触发器并没有触发?这是为什么?!我的操作有什么错误么?
另外,当我再次在企业管理器中修改刚才创建的视图时会出现“错误5:[SQL-DMO]
代码执行异常错误 EXCEPTION_ACCESS_VIOLATION”这是为什么?

...全文
53 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rzg 2003-07-10
  • 打赏
  • 举报
回复
我的问题是在视图中触发器怎么不触发,这只是一个例子说明。
zgh2003 2003-07-09
  • 打赏
  • 举报
回复
俺对你的问题有以下看法:
1.你编写触发器中“INSERT INTO test_M
values(cast(GETDATE() as varchar(20)),user)”不知想实现什么功能?
俺的理解是:你想在表“Test_M”中插入记录时,自动填充当前日期,如此的话,你必须 要添加一个日期字段(例为:“Date_D DateTime()”)。
2.当出现上述错误时,可在基础表(Test_D与Test_M)中先删除记录再行修改;
3.用“Instead of”不行的话,可在Test_M中创建触发器:
CREATE TRIGGER ForInsert ON [dbo].[Test_M]
For INSERT
AS
SET NOCOUNT ON
Begin
Update test_M
Set Date_D=GETDATE()
End
SET NOCOUNT OFF
此触发器也能实现你的功能。
8992026 2003-07-09
  • 打赏
  • 举报
回复
CREATE TRIGGER ForInsert ON [dbo].[TestView]
INSTEAD OF INSERT
AS
SET NOCOUNT ON
INSERT INTO test_D
select cast(GETDATE() as varchar(20)),name from inserted


INSERT INTO test_M
select cast(GETDATE() as varchar(20)),Memo from inserted


SET NOCOUNT OFF
CrazyFor 2003-07-09
  • 打赏
  • 举报
回复
TRY:
CREATE TRIGGER ForInsert ON [dbo].[TestView]
For INSERT
AS
SET NOCOUNT ON

INSERT INTO test_M
values(cast(GETDATE() as varchar(20)),user)
......
fredlin 2003-07-09
  • 打赏
  • 举报
回复
我感觉问题 内容长的话,
就很少有高手来答,
也许是他们没空来看清楚你题目的意思吧。


fredlin 2003-07-09
  • 打赏
  • 举报
回复
....
rzg 2003-07-09
  • 打赏
  • 举报
回复
等待...
rzg 2003-07-09
  • 打赏
  • 举报
回复
求求各位大哥帮我up一下。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧