0
我需要SQL Server语法的帮助来创建一些trigly,我已经在SQLite上成功地使用了,但是我在NEW.Table上遇到了问题,一旦它不是SQL Server。SQLite触发到SQL Server Express 2008
That's我的SQLite触发代码:
UPDATE EngineeringItems set ElevacaoFIT = CAST(round((select "Position Z" - MatchingPipeOD/2 from EngineeringItems where PnPId = new.PNPID), 0) as INT) where PNPID = new.PNPID;
PNPID是表PK!
编辑2:
再次感谢老兄! 我已经尝试了一些修改,并且SQL Server接受了它,并且触发器已成功创建。因此,代码为:
CREATE TRIGGER [ElevacaoFIT_Insert]
ON [dbo].[EngineeringItems]
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
UPDATE EngineeringItems
SET
ElevacaoFIT = CAST(ROUND((select EngineeringItems."Position Z" - (EngineeringItems.MatchingPipeOD/2)
FROM
EngineeringItems INNER JOIN inserted ON EngineeringItems.PnPId = inserted.PnPId), 0) AS INT);
END
但现在我得到这个消息:子查询返回多个值。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。!任何想法?
对不起,打扰你...再次感谢!
请,看看原来的职位与编辑答案!谢谢... – user2083234 2013-02-18 14:13:19
请检查修改我的答案。我相信这应该起作用。 – youcantseeme 2013-02-18 14:22:17
兄弟...请看看编辑2.谢谢! – user2083234 2013-02-18 18:48:44