の表の値を更新し得ていない後これは私が私のトリガーにセカンドアップデートした後、私はその作業罰金私の値を更新したが二回目はその古い値を取るトリガーがトリガー
初めての古いStartDateUtcとEndDateUtcを取得しています私のコードです 私にそれ
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[NewsUpdateTrigger]'))
DROP TRIGGER [dbo].[NewsUpdateTrigger]
GO
CREATE TRIGGER [dbo].[NewsUpdateTrigger]
ON [dbo].[News]
FOR UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @EntityId INT
DECLARE @EntityName varchar(Max)
DECLARE @IsPublish bit
DECLARE @LanguageId int
DECLARE @StoreId int
DECLARE @InTime Datetime
SELECT @EntityName='News'
DECLARE @StatDate DateTime
DECLARE @EndDate DateTime
SELECT @EntityId = DELETED.Id FROM DELETED
SELECT @IsPublish = DELETED.Published FROM DELETED
SELECT @StatDate= DELETED.StartDateUtc FROM DELETED
SELECT @EndDate= DELETED.EndDateUtc FROM DELETED
IF EXISTS (SELECT * FROM Incremental_Solr_Custom where EntityName='News' and EntityId = @EntityId)
BEGIN
--If StartDateUtc and EndDateUtc expire Manually Set the is Publish=False
IF EXISTS (SELECT * FROM DELETED WHERE StartDateUtc NOT BETWEEN Cast(GETDate() as date) AND Cast(GETDate() as date)
AND Cast(GETDate() as date) NOT BETWEEN StartDateUtc AND EndDateUtc)
BEGIN
UPDATE Incremental_Solr_Custom SET SolrStatus =1,IsPublish=0 WHERE EntityId = @EntityId AND EntityName='News';
Insert into TriggerTesterTable(ErrorMethodName)values(' If StartDateUtc and EndDateUtc expire Set the is Publish=False '+ cast(@StatDate as varchar) + ' '+cast(@EndDate as varchar))
END
--StartDate and EndDate is Not expire Get From News Table
IF EXISTS (SELECT * FROM DELETED WHERE StartDateUtc BETWEEN Cast(GETDate() as date) AND Cast(GETDate() as date)
OR Cast(GETDate() as date) BETWEEN StartDateUtc AND EndDateUtc)
BEGIN
SELECT @IsPublish = DELETED.Published FROM DELETED
UPDATE Incremental_Solr_Custom SET SolrStatus =1,[email protected] WHERE EntityId = @EntityId AND EntityName='News';
Insert into TriggerTesterTable(ErrorMethodName)values('StartDate and EndDate is Not expire Get IsPublish from News '+cast(@StatDate as varchar) + ' '+cast(@EndDate as varchar));
END
END
END
トリガされている**の高いベンダー固有** - あなたは 'mysql'を使用しているかどうかを、指定するタグを追加してください' postgresql'を、 'sql-server'、' oracle'または 'db2' - あるいは全く別のものです。 –
次に、[更新済み]テーブルから[削除済み]を使用せずに値を取得する方法 –