我正在使用SQL Server触发器,似乎无法将插入的日期与我在另一个表中设置的日期列进行比较。这是我正在努力的触发器:
CREATE TRIGGER TRIGNAME
ON TABLE
FOR INSERT
AS
BEGIN
DECLARE @REC INT
SELECT @REC = COUNT(*)
FROM INSERTED I
WHERE I.ID IS NOT NULL
AND I.COL2 = 'TEST'
IF (@REC > 0)
BEGIN
SELECT @REC = COUNT(*)
FROM INSERTED I
WHERE I.DATE > (SELECT DISTINCT S.DATE FROM TABLE1 S
WHERE I.PARENT_ID = S.PARENT_ID)
IF (@REC > 0)
BEGIN
UPDATE STATEMENT HERE
END
END
不确定我在哪里出错,但Table1中的日期列对于具有相同父ID的记录组是相同的。
答案 0 :(得分:0)
尝试声明DATETIME变量以存储Table1.Date值。 然后进行比较。它可能只是我,但我喜欢使用所有小写字母插入的表格。
CREATE TRIGGER TRIGNAME
ON TABLE
FOR INSERT
AS
BEGIN
DECLARE @REC INT
DECLARE @MyDate DateTime
SET @MyDate = (SELECT DISTINCT S.DATE FROM TABLE1 S
INNER JOIN inserted ON inserted.PARENT_ID = S.PARENT_ID)
SELECT @REC = COUNT(*)
FROM INSERTED I
WHERE I.ID IS NOT NULL
AND I.COL2 = 'TEST'
IF (@REC > 0)
BEGIN
SELECT @REC = COUNT(*)
FROM INSERTED I
WHERE I.DATE > @MyDate
IF (@REC > 0)
BEGIN
UPDATE STATEMENT HERE
END
END