续:请问.....触发器问题!!!!

xiaoyezi246 2008-01-17 02:00:32
小弟刚自己把命令执行了下,发现老师弹出错误,我现在就把我自己的发各位看下,麻烦看下错误在哪:
以下是我写的:
create table DocTrans(CoCode int,AgCode varchar(10),CoHKCI varchar(10),CoHKBR varchar(10),CoHKCHOP varchar(10))
create table DocStatus(CoCode int,CoHKCI varchar(10),CoHKBR varchar(10),CoHKCHOP varchar(10))

create trigger triggername
on DocTrans
for update
as
update a
set a.CoHKCI = case when b.CoHKCI = '1' then b.AgCode else a.a end,
a.CoHKBR = case when b.CoHKBR = '1' then b.AgCode else a.b end,
a.CoHKCHOP = case when b.CoHKCHOP = '1' then b.AgCode else a.c end
from DocStatus a
left join inserted b on a.CoCode = b.CoCode
go
select * from DocTrans
select * from DocStatus
update DocTrans
set CoHKCI = '1' where CoCode = '1'
update DocTrans
set CoHKBR = '1' where CoCode = '2'

到此运行我也不知道错误在哪?我下面把我数据库发各位看下:
/*****接收的相关文件资料*******/
create table DocTrans
(
TransNo char(20) 接收单号(R+yymmdd+001)R990315001
CoCode char(10), 公司编号
RecDate datetime, 交易时间
AgCode char(10), 代办人编号
StCode char(10), 收件人编号
CoHKCI char(2), 公司注册证 (预设为'0' 表示没有收此文件)
CoHKBR char(2), 公司商业登记证 (点击为'1' 表示收回此文件)
CoHKCHOP char(2),
)
/*****接收明细表*******/
create table DocRecHeader
(
RecNo char(20) primary key, 交易号
RecDate datetime, 交易时间
AgCode char(10), 代办人编号
StCode char(10), 收件人编号
)

麻烦刚才的老师再看下,我问题在哪
...全文
66 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
utpcb 2008-01-18
  • 打赏
  • 举报
回复
UP
昵称被占用了 2008-01-18
  • 打赏
  • 举报
回复
create   table     DocTrans(CoCode   int,AgCode   varchar(10),CoHKCI     varchar(10),CoHKBR   varchar(10),CoHKCHOP     varchar(10)) 
create table DocStatus(CoCode int,CoHKCI varchar(10),CoHKBR varchar(10),CoHKCHOP varchar(10))
go ---这里必须加
create trigger triggername
on DocTrans
for update
as
update a
set a.CoHKCI = case when b.CoHKCI = '1' then b.AgCode else a.a end,
a.CoHKBR = case when b.CoHKBR = '1' then b.AgCode else a.b end,
a.CoHKCHOP = case when b.CoHKCHOP = '1' then b.AgCode else a.c end
from DocStatus a
left join inserted b on a.CoCode = b.CoCode
go
select * from DocTrans
select * from DocStatus
update DocTrans
set CoHKCI = '1' where CoCode = '1'
update DocTrans
set CoHKBR = '1' where CoCode = '2'
qiuming0306 2008-01-18
  • 打赏
  • 举报
回复
你要实现什么功能??
qiuming0306 2008-01-18
  • 打赏
  • 举报
回复

--现在可以编译通过

create table DocTrans(CoCode int,AgCode varchar(10),CoHKCI varchar(10),CoHKBR varchar(10),CoHKCHOP varchar(10))
create table DocStatus(CoCode int,CoHKCI varchar(10),CoHKBR varchar(10),CoHKCHOP varchar(10))
go
create trigger triggername
on DocTrans
for update
as
update a
set a.CoHKCI = case when b.CoHKCI = '1' then b.AgCode else a.a end,
a.CoHKBR = case when b.CoHKBR = '1' then b.AgCode else a.b end,
a.CoHKCHOP = case when b.CoHKCHOP = '1' then b.AgCode else a.c end
from DocStatus a
left join inserted b on a.CoCode= b.CoCode
go
select * from DocTrans
select * from DocStatus
update DocTrans
set CoHKCI = '1' where CoCode = '1'
update DocTrans
set CoHKBR = '1' where CoCode = '2'

--到此运行我也不知道错误在哪?我下面把我数据库发各位看下:
/*****接收的相关文件资料*******/
create table DocTrans
(
TransNo char(20), --接收单号(R+yymmdd+001)R990315001
CoCode char(10), --公司编号
RecDate datetime, --交易时间
AgCode char(10), --代办人编号
StCode char(10), --收件人编号
CoHKCI char(2), --公司注册证 (预设为'0' 表示没有收此文件)
CoHKBR char(2), --公司商业登记证 (点击为'1' 表示收回此文件)
CoHKCHOP char(2),
)
/*****接收明细表*******/
create table DocRecHeader
(
RecNo char(20) primary key, --交易号
RecDate datetime, --交易时间
AgCode char(10), -- 代办人编号
StCode char(10), -- 收件人编号
)


yang_dgut 2008-01-17
  • 打赏
  • 举报
回复
就是!~
yangjiexi 2008-01-17
  • 打赏
  • 举报
回复

--else 后面没修改过来!
yangjiexi 2008-01-17
  • 打赏
  • 举报
回复

create trigger triggername
on DocTrans
for update
as
update a
set a.CoHKCI=case when b.CoHKCI= '1' then b.AgCode
else a.CoHKCI end,
a.CoHKBR=case when b.CoHKBR= '1' then b.AgCode
else a.CoHKBR end,
a.CoHKCHOP=case when b.CoHKCHOP= '1' then b.AgCode
else a.CoHKCHOP end
from DocStatus a
left join inserted b on a.CoCode=b.CoCode
go
一者仁心 2008-01-17
  • 打赏
  • 举报
回复
update DocStatus 不是a

22,299

社区成员

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

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