触发器不能正常插入数据,请高手指点!

sunzz 2006-03-04 03:17:41
我做了一个触发器,想在A表更新某个字段时在B表中插入一条对应的记录,B表中新插入的记录的ID字段和A表中刚更新的记录的ID字段相同。代码如下:
CREATE TRIGGER aaa_Change ON A
FOR UPDATE
AS
IF UPDATE (No)
BEGIN
DECLARE @myID as VARCHAR
SELECT @myID = ID FROM inserted

insert
into B(ID)
values (@myID)
END
但运行结果却有问题:A表中ID字段若是0001,B表中ID字段就是0;A表中ID字段若是MA32,B表中ID字段就是M,似乎只取出A表中ID的第一个字符,我也查过数据库,A表和B表的ID字段的设计是一样的,不知道是什么原因,请各位大侠指点!
...全文
76 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xeqtr1982 2006-03-04
楼上大虾正解,没有声明变量长度,导致长度不够
回复
netfly 2006-03-04
DECLARE @myID as VARCHAR(20)-----------和A表的ID长度一样试试
回复
wgsasd311 2006-03-04
--try
CREATE TRIGGER aaa_Change ON A
FOR UPDATE
AS
IF UPDATE (No)
BEGIN
DECLARE @myID as VARCHAR(100)
SELECT @myID = ID FROM inserted

insert
into B(ID)
values (@myID)
END
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2006-03-04 03:17
社区公告
暂无公告