2017-10-14 89 views
0
CREATE OR REPLACE TRIGGER R_SERVICE_HISTORY_MESSAGE 
AFTER INSERT ON SERVICE_HISTORY_DETAIL 
FOR EACH ROW 
AS IF(SELECT FINISHED FROM SERVICE_HISTORY, INSERTED 
WHERE FINISHED=’T’ 
BEGIN 
PRINT ‘Hi <Full Customer Name>, your dog <dog-name> of breed: <breed-name> is ready for pick-up at Doggo Paradise Carindale’ 
END; 
ELSE 
IF(SELECT FINISHED FROM SERVICE_HISTORY, INSERTED 
WHERE FINISHED=’F’ 
BEGIN 
PRINT ‘Hi <Full Customer Name>, your dog <dog-name> of breed: <breed-name> is not ready to be picked up yet.’ 
END; 
/

enter image description here 表結構如下,我的觸發是完全錯誤的插入或更新SERVICE_HISTORY_DETAIL.and如何來用其他表名的描述後,可以激活,我試過很多次,我真的很迷茫關於它。歡呼聲如何激活sql中的描述?

SERVICE_HISTORY    DOGS    CUSTOMERS 
---------------------------------------------------------------------- 
MESSAGE varchar(300)   DOG_ID    C_ID 
DOG_ID 
FINISHED      C_ID     NAME 
+1

擴大你能對你所問的更清晰? –

+0

@DerekBrown我已經更新圖片描述,謝謝 – spicy

+0

mysql沒有插入表格或打印動詞,sql server沒有每行,所以你使用的是sql server還是mysql? –

回答

0

這裏有一個測試工作的例子,你可以在

CREATE TRIGGER R_SERVICE_HISTORY_MESSAGE 
ON SERVICE_HISTORY 
AFTER INSERT,update 
AS 
declare @cname varchar(100) 
set @cname = (select concat(title,' ',firstname,' ',lastname) from dimcustomer join inserted on customerkey = inserted.cid) 
IF exists(SELECT s.FINISHED FROM SERVICE_HISTORY s join INSERTED i on i.dog_id = s.dog_id WHERE s.FINISHED='T') 
BEGIN 
PRINT concat('Hi ', 
@cname, 
' your dog <dog-name> of breed: <breed-name> is ready for pick-up at Doggo Paradise Carindale') 
END 
ELSE 
IF exists(SELECT s.FINISHED FROM SERVICE_HISTORY s join INSERTED i on i.dog_id = s.dog_id WHERE s.FINISHED='F') 
BEGIN 
PRINT 'Hi <Full Customer Name>, your dog <dog-name> of breed: <breed-name> is not ready to be picked up yet.' 
end