这个怎么样?
CREATE TABLE OVERWRITE
(OVERWRITEID int
,[O/R COMPLETE DATE] date
,[O/R SHIP BY] date
,[SHIP INSTRUCTIONS] AS
CASE WHEN [O/R COMPLETE DATE] > [O/R SHIP BY]
THEN 'Overwrite shipBy date must be later than Overwrite Completed date'
ELSE
'Overwrite shipBy date and Overwrite Completed dates are valid'
END
)
INSERT INTO OVERWRITE
VALUES (1,'1/1/2017', '6/1/2017'), (2, '11/1/2017', '10/1/2017')
SELECT *
FROM OVERWRITE
触发器不是为输出设计的;如前所述,建议客户端应用程序发送消息。数据库中的第一道防线数据是前端应用程序。
http://sqlfiddle.com/#!6/4f0d0/1
此时你想这样的消息?。我的意思是在插入或upadating记录?你能更详细地描述你的需求吗? –
'当[O/R完成日期]> [O/R COMPLETE DATE]时选择案例'那么'覆盖shipBy日期必须晚于Overwite完成日期'ELSE NULL END AS Message'? – Siyual
这感觉就像在与数据库交互的应用程序中应该做的事情,然后再将数据作为数据验证的一部分发送。不是数据库本身应该做的事情。 – JNevill