日期:2014-05-18  浏览次数:20422 次

无法绑定由多个部分组成的标识符 "T.TE001"
请高手指点怎么修正以下报错,谢谢!
消息 4104,级别 16,状态 1,过程 MOCTEQTYMO,第 7 行
无法绑定由多个部分组成的标识符 "T.TE001"。
消息 4104,级别 16,状态 1,过程 MOCTEQTYMO,第 7 行
无法绑定由多个部分组成的标识符 "T.TE002"。
消息 4104,级别 16,状态 1,过程 MOCTEQTYMO,第 7 行
无法绑定由多个部分组成的标识符 "T.TE003"。
消息 4104,级别 16,状态 1,过程 MOCTEQTYMO,第 7 行
无法绑定由多个部分组成的标识符 "T.TE004"。

代码:
CREATE TRIGGER [dbo].[MOCTEQTYMO] ON [dbo].[MOCTE]
  AFTER INSERT,UPDATE,DELETE AS 
  begin
  SET NOCOUNT ON
  UPDATE MOCTE
SET UDF02=K.MC007,UDF04=N.OK
FROM INSERTED T,MOCTE M,INVMC K inner join duizhuan N on T.TE001=N.TE001 AND T.TE002=N.TE002 AND T.TE003=N.TE003 AND T.TE004=N.TE004
WHERE T.TE001=M.TE001 AND
  T.TE002=M.TE002 AND
  T.TE003=M.TE003 AND
  T.TE004=K.MC001 AND
  T.TE008=K.MC002
  SET NOCOUNT Off
  end

------解决方案--------------------
T里面有不止一个TE001字段?
------解决方案--------------------
FROM INSERTED T,MOCTE M,INVMC K inner join duizhuan N on T.TE001=N.TE001 AND T.TE002=N.TE002 AND T.TE003=N.TE003 AND T.TE004=N.TE004

jion 的前后,都只能有一个表的.
------解决方案--------------------
FROM INSERTED T,MOCTE M,INVMC K inner join duizhuan N

把这里全改成,或者INNER JOIN 再试试
------解决方案--------------------
SQL code
--方法1
FROM INSERTED T,MOCTE M,INVMC K inner join duizhuan N 

--改為

FROM INSERTED T Cross join MOCTE M Cross join  INVMC K inner join duizhuan N

------解决方案--------------------
SQL code
CREATE TRIGGER [dbo].[MOCTEQTYMO] ON [dbo].[MOCTE]
  AFTER INSERT,UPDATE,DELETE AS  
  begin
  SET NOCOUNT ON
  UPDATE MOCTE
SET UDF02=K.MC007,UDF04=N.OK
FROM (select * from INSERTED T,MOCTE M,INVMC K WHERE T.TE001=M.TE001 AND
  T.TE002=M.TE002 AND
  T.TE003=M.TE003 AND
  T.TE004=K.MC001 AND
  T.TE008=K.MC002)T inner join duizhuan N on T.TE001=N.TE001 AND T.TE002=N.TE002 AND T.TE003=N.TE003 AND T.TE004=N.TE004

  SET NOCOUNT Off
  end

------解决方案--------------------
改成如下试试看:
CREATE TRIGGER [dbo].[MOCTEQTYMO] ON [dbo].[MOCTE]
AFTER INSERT,UPDATE,DELETE AS
begin
SET NOCOUNT ON
UPDATE MOCTE
SET UDF02=K.MC007,UDF04=N.OK
FROM INSERTED T inner join duizhuan N on T.TE001=N.TE001 AND T.TE002=N.TE002 AND T.TE003=N.TE003 AND T.TE004=N.TE004,MOCTE M,INVMC K WHERE T.TE001=M.TE001 AND
T.TE002=M.TE002 AND
T.TE003=M.TE003 AND
T.TE004=K.MC001 AND
T.TE008=K.MC002
SET NOCOUNT Off
end