触发器不能正常插入数据,请高手指点!
我做了一个触发器,想在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字段的设计是一样的,不知道是什么原因,请各位大侠指点!
问题点数:10、回复次数:3Top
1 楼wgsasd311(自强不息)回复于 2006-03-04 15:24:31 得分 3
--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)
ENDTop
2 楼netfly(支点)回复于 2006-03-04 15:26:09 得分 3
DECLARE @myID as VARCHAR(20)-----------和A表的ID长度一样试试Top
3 楼xeqtr1982(Visual C# .NET)回复于 2006-03-04 15:27:19 得分 4
楼上大虾正解,没有声明变量长度,导致长度不够Top




