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
しかし今、次のメッセージが表示されます:サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。! 何か案が?
お手数をおかけして申し訳ありません...ありがとうございました!!