Я хочу дать информацию в соответствии с профессией, используя «Триггер» - PullRequest
0 голосов
/ 18 апреля 2019

' Триггер ' Я хочу дать информацию в зависимости от используемой профессии. Например ; Когда я пришел в инженер, я добавил «инженер» Это его имя и фамилия. 'as.

ALTER TRIGGER tigger_example
ON information
AFTER INSERT
AS
IF EXISTS(SELECT * FROM inserted WHERE Person_Job='Engineer')
BEGIN
    PRINT 'Engineer added to list.'+
    'Person Info:' +
    'Name : ' + person_firstname + -- not work
    'Surname : ' + person_lastname -- not work
END
ELSE IF EXISTS(SELECT * FROM inserted WHERE Person_Job='Architect')
BEGIN
    PRINT 'Architect added to list.'+
    'Person Info:' +
    'Name : ' + person_firstname + -- not work
    'Surname : ' + person_lastname -- not work
END
ELSE
BEGIN
    PRINT 'An undefined contact has been added to the list.'
END

ОШИБКА:

The name "person_firstname" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.

1 Ответ

1 голос
/ 18 апреля 2019

Вы должны использовать «ВЫБРАТЬ ... из вставленного» для чтения значения поля.пример:

ALTER TRIGGER tigger_example
ON information
AFTER INSERT
AS
DECLARE @MSG NVARCHAR(MAX)
IF EXISTS(SELECT * FROM inserted WHERE Person_Job='Engineer')
BEGIN

    SET @MSG ='Engineer added to list.'+CHAR(13)+CHAR(10)+'Person Info:'

    SELECT @MSG=@MSG+CHAR(13)+CHAR(10)+'Name : ' + person_firstname +  'Surname : ' + person_lastname 
    FROM inserted WHERE Person_Job='Engineer'

    print @MSG

END
ELSE IF EXISTS(SELECT * FROM inserted WHERE Person_Job='Architect')
BEGIN

    SET @MSG ='Architect added to list.'+CHAR(13)+CHAR(10)+'Person Info:'

    SELECT @MSG=@MSG+CHAR(13)+CHAR(10)+'Name : ' + person_firstname +  'Surname : ' + person_lastname 
    FROM inserted WHERE Person_Job='Architect'

    print @MSG

END
ELSE
BEGIN
    PRINT 'An undefined contact has been added to the list.'
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...