客户后期的问题,申请编号由上级部门下发的,不能自动编号,手动输入又怕重复。
CREATE TRIGGER [dbo].[trg_biz_Task]
ON [dbo].[biz_Task]
AFTER INSERT,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF UPDATE(ApplyNo)
BEGIN
DECLARE @ApplyNo VARCHAR(50)
SELECT @ApplyNo = ApplyNo FROM INSERTED
WHERE EXISTS(SELECT 1 FROM biz_Task t WHERE t.TaskId != INSERTED.TaskId AND t.ApplyNo = INSERTED.ApplyNo)
IF @ApplyNo IS NOT NULL
BEGIN
DECLARE @MSG NVARCHAR(50) = N'申请编号"' + @ApplyNo + '"已经被其他任务使用.';
THROW 123456, @MSG, 123;
END
END
-- Insert statements for trigger here
END
------THROW 是SQLSERVER2012 的功能,提示错误行
参照
http://www.cnblogs.com/CareySon/archive/2012/03/14/2395661.html