0

SQLite で使用して成功したいくつかのトリガーを作成するには、SQL Server 構文のヘルプが必要ですが、SQL Server の一部ではないため、 NEW.Tableで問題が発生しています。

それは私の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

しかし今、次のメッセージが表示されます:サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。! 何か案が?

お手数をおかけして申し訳ありません...ありがとうございました!!

4

1 に答える 1