纯新手,写个触发器,变量定义报错

ralhander 2010-08-31 04:23:16
DECLARE @carid nvarchar(12)
这一句给我报错,知道咋回事的告诉我
...全文
158 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
winstonbonaparte 2010-08-31
  • 打赏
  • 举报
回复
變量定義不能放在游標定義和游標的語句之間
华夏小卒 2010-08-31
  • 打赏
  • 举报
回复
CREATE TRIGGER tiu_CARMSG
ON CARMSG
for INSERT,update
as
begin
delete from clxxb where CLBH in(select carid from inserted);
DECLARE @carid nvarchar(12) --这句放这
DECLARE E1cursor cursor
FOR SELECT * FROM inserted
OPEN E1cursor

。。。。
喜-喜 2010-08-31
  • 打赏
  • 举报
回复
DECLARE E1cursor cursor
DECLARE @carid nvarchar(12)
FOR SELECT * FROM inserted


DECLARE @carid nvarchar(12)这句话写错位置了!


这样试试...
DECLARE @carid nvarchar(12)
DECLARE E1cursor cursor
FOR SELECT * FROM inserted
ralhander 2010-08-31
  • 打赏
  • 举报
回复
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'tiu_carmsg' AND type = 'TR')
DROP TRIGGER tiu_carmsg
GO
CREATE TRIGGER tiu_CARMSG
ON CARMSG
for INSERT,update
as
begin
delete from clxxb where CLBH in(select carid from inserted);
DECLARE E1cursor cursor
DECLARE @carid nvarchar(12)

FOR SELECT * FROM inserted
OPEN E1cursor
FETCH NEXT from E1cursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT from E1cursor
END
CLOSE E1cursor
DEALLOCATE E1cursor
update clxxb set clzt='70' where CLBH in (select carid from inserted where inserted.CARSTATE='1');
update clxxb set clzt='20' where CLBH in (select carid from inserted where inserted.CARSTATE='2');
update clxxb set clzt='70' where CLBH in (select carid from inserted where inserted.CARSTATE='3');
update clxxb set clzt='140' where CLBH in (select carid from inserted where inserted.CARSTATE='4');
end;
go
全贴出来了,请指点
水族杰纶 2010-08-31
  • 打赏
  • 举报
回复
这个本身没有错
错其他地方了吧

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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