大家看看,我这个触发器是哪里的错误??
CREATE TRIGGER question_update_triger ON [dbo].[online_question]
FOR UPDATE
AS
declare @answer int
set @answer=(select answer_number from updated)
if(@answer!=0)
update online_question set answer="y"
else
update online_question set answer="n"
错误信息:
System.Data.SqlClient.SqlException: 对象名 'updated' 无效。 at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at ASP.table_aspx.enter_click(Object sender, EventArgs e) in c:\inetpub\wwwroot\kjzj\online\table.aspx:line 46
问题点数:20、回复次数:8Top
1 楼SE1()回复于 2002-02-25 09:47:12 得分 0
SQL Server吗?和Inseted、Deleted不同,对于Update触发子而言,并没有一个Updated临时表存在。Top
2 楼xzou(亡狼补齿)回复于 2002-02-25 09:49:00 得分 0
没有updated,只有inserted和deleted,去inserted找你需要的东西吧
Top
3 楼zzgsky(紫雨)回复于 2002-02-25 09:52:05 得分 0
这样呀?我试试看!!Top
4 楼zzgsky(紫雨)回复于 2002-02-25 09:58:07 得分 0
那我如何得到我修改的这一条记录的某一列值呢?Top
5 楼SE1()回复于 2002-02-25 10:01:50 得分 0
在inserted中查询好了.Top
6 楼zzgsky(紫雨)回复于 2002-02-25 10:09:28 得分 0
我并没有insert,只是当我update一条记录的某一列值(example:name)时,同时对这条记录的另一列值进行修改Top
7 楼Haiwer(海阔天空)回复于 2002-02-25 10:11:18 得分 10
CREATE TRIGGER question_update_triger ON [dbo].[online_question]
FOR UPDATE
AS
update online_question
set set answer="y"
from online_question b,inserted i,deleted d
where b.key=i.key
and b.key=d.key
and i.answer_number<>0
update online_question
set set answer="n"
from online_question b,inserted i,deleted d
where b.key=i.key
and b.key=d.key
and i.answer_number=0
go
Top
8 楼SE1()回复于 2002-02-25 10:14:56 得分 10
根据你的题目,就是要知道更新的内容中answer_number字段是否为零?那么,应该这样:
select @answer=sum(answer_number) from inserted
if(@answer!=0)
update online_question set answer="y"
else
update online_question set answer="n"
Top




