☆☆☆求助!!!触发器异常,跨数据库插入数据时出现异常☆☆☆
CREATE TRIGGER TR_INSERT ON Asean_Member
FOR INSERT
AS
DECLARE @UserName varchar(50)
DECLARE @UserPasswd varchar(50)
SELECT @UserName=M_userid,@UserPasswd=M_Password FROM inserted
INSERT INTO A (UserName,UserPassword)VALUES(@UserName,@UserPasswd)
查询插入的记录,读出用户名和密码然后插入数据到同一个数据库的A表,这个没问题
CREATE TRIGGER TR_INSERT ON Asean_Member
FOR INSERT
AS
DECLARE @UserName varchar(50)
DECLARE @UserPasswd varchar(50)
SELECT @UserName=M_userid,@UserPasswd=M_Password FROM inserted
INSERT INTO X.dbo.A (UserName,UserPassword)VALUES(@UserName,@UserPasswd)
查询插入的记录,读出用户名和密码然后插入数据到同X数据库的A表,这个出现问题,页面在执行插入操作以后提示插入成功,但是实际上数据并未插入数据库,而且A表中也没有相应的用户名和密码
------解决方案--------------------在查询分析器里执行下面语句记录会插入成功吗?
INSERT INTO X.dbo.A (UserName,UserPassword)
VALUES( 'user1 ', 'password1 ')
还有,你insert触发器的取记录的方法如果多条的话就会有问题.
------解决方案----------------------修改成这样.
CREATE TRIGGER TR_INSERT ON Asean_Member
FOR INSERT
AS
INSERT INTO X.dbo.A (UserName,UserPassword)
SELECT M_useridM_Password FROM inserted
------解决方案--------------------alter TRIGGER TR_INSERT ON Asean_Member
FOR INSERT
AS
/*
DECLARE @UserName varchar(50)
DECLARE @UserPasswd varchar(50)
SELECT @UserName=M_userid,@UserPasswd=M_Password FROM inserted
*/
INSERT INTO X.dbo.A (UserName,UserPassword)VALUES( 'user111 ', 'password111 ')
把触发器修改成上面这样,页面在执行插入操作后看X.dbo.A中有没有user111这条记录.
不成功是不是X.dbo.A有主键重复或其它约束啊?
icoding(我编码我存在) ( ) 信誉:100 Blog 加为好友 2007-04-16 16:09:44 得分: 0
还有,你insert触发器的取记录的方法如果多条的话就会有问题.
---------------
我理解是每插入一条,inserted产生一条对应的数据,应该始终是一条记录吧?
-----------------------
不一定.
这要看你前台是发出什么样的插入语句决定,有可能为多条.