recid | EffectiveFrom | EffectiveTo
------------------------------------
1 | 2012-11-25 | 2012-11-30
2 | 2012-11-26 | null
effectivefrom
新しい日付が と の間でeffectiveTo
挿入を停止するかどうかをチェックするトリガーが必要です。
recid | EffectiveFrom | EffectiveTo
------------------------------------
1 | 2012-11-25 | 2012-11-30
2 | 2012-11-26 | null
effectivefrom
新しい日付が と の間でeffectiveTo
挿入を停止するかどうかをチェックするトリガーが必要です。
これを試して :
USE {yourDB};
CREATE TRIGGER insertRecord ON {tblName}
INSTEAD OF INSERT
AS
BEGIN
DECLARE @EffectiveFrom DATE;
DECLARE @EffectiveTo DATE;
DECLARE @newDate DATE;
SET @newDate = GETDATE(); -- DATE WHICH YOU WANT TO CHEK
SELECT @EffectiveFrom = EffectiveFrom FROM INSERTED;
SELECT @EffectiveTo = EffectiveTo FROM INSERTED;
IF (@newDate > @EffectiveFrom AND @newDate < @EffectiveTo)
BEGIN
INSERT INTO [{yourDB}].[dbo].[{tblName}]
SELECT * FROM INSERTED;
PRINT 'DATA SUCCESSFULLY ADDED.'
END
ELSE PRINT 'ERROR : DATE IS NOT IN BETWEEN EffectiveFrom and EffectiveTo DATE'
END
INSERT INTO [{yourDB}].[dbo].[{tblName}] VALUES(CAST('24-NOV-2012' AS DATE),CAST('30-NOV-2012' AS DATE))
メッセージ --result エラー: 日付が有効な日付と有効な日付の間にありません
INSERT INTO [{yourDB}].[dbo].[{tblName}] VALUES(CAST('24-NOV-2012' AS DATE),CAST('02-DEC-2012' AS DATE))
メッセージ -- 結果 (1 行が影響を受ける) データが正常に追加されました。