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

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字段的设计是一样的,不知道是什么原因,请各位大侠指点!
...全文
114 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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

22,210

社区成员

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

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