Спусковой механизм на DB SQL Server, чтобы вставить/обновить стол, как только родительская таблица обновляется или вставляется

Я новый, чтобы вызвать письмо. Я написал спусковой механизм, чтобы Вставить/обновить стол, как только отчет в столе кода/матери затронут, т.е. если, если я вставляю отчет в 1-й раз, это должно вставить тот отчет с другой соответствующей информацией в новом столе. То же самое применяется для обновления также.. Ниже кодовая часть, которую я попробовал, Но не рабочие средства даже thogh она собрала успешно.. это неспособно вставить отчет в целевой стол.. Здесь TQA_USER_ASSESSMENT - основной стол, и TQA_USER_ASSESSMENT должен быть населен/, обновленный согласно данным в TQA_USER_ASSESSMENT.

               CREATE TRIGGER [dbo].[TRG_RAM_DETAILS_GMAS] ON [dbo].[TQA_USER_ASSESSMENT]           FOR                 INSERT,UPDATE
               AS
              SET XACT_ABORT, NOCOUNT ON

           --Ignore zero row updates, inserts
              IF NOT EXISTS (SELECT * FROM INSERTED) RETURN;

INSERT INTO TQA_RAM_DETAILS_GMAS
SELECT
        tu.name AS User_Name,
        tat.assessmentType AS Assessment_Type,
        tb.name AS Business_Class_Name,
        tr.name AS Region_Name,
        tc.name AS Country_Name,
        tf.facilityName AS Terminal_Name, 
        I.ovr_terminal_rating AS Terminal_Rating,
        CONVERT(VARCHAR(10), I.dateOfInspection, 103) AS Date_of_Inspection, 
        CONVERT(VARCHAR(10), I.dateNextInspectionDue, 103) AS Expiry_date_of_rating,
        CONVERT(VARCHAR(10), I.summ_lastUpdated, 103) AS lastUpdated





FROM
   INSERTED I INNER JOIN
        dbo.TQA_USERS tu ON I.userID=tu.userID INNER JOIN
        dbo.TQA_ASSESSMENT_TYPE AS tat ON tat.assessmentTypeID = I.assessmentTypeID INNER JOIN
        dbo.TQA_FACILITIES AS tf ON tf.facilityID = I.facilityID INNER JOIN
        dbo.TQA_ACCESS ta ON ta.facilityID=tf.facilityID INNER JOIN
        dbo.TQA_BUSINESS_CLASSES tb ON tb.businessClassID= ta.businessClassID INNER JOIN
        dbo.TQA_REGIONS tr ON tr.regionID= ta.regionID INNER JOIN
        dbo.TQA_COUNTRIES tc ON tc.countryID= ta.countryID
0
nl ja de
"не работа". никогда не полезное диагностическое, чтобы дать людям you' ре, обращающееся за помощью от. В каком путь разве это не работает - производство ошибки? Какая ошибка? Приведение к неправильным результатам? То, что было вашим , ожидало результаты, и (учитывая нас don' у t есть ваши столы и данные), каково фактическое результаты? Кроме того, ранний выход для 0 рядов в , введенном , бессмыслен, учитывая, что это просто произведет 0 вставок ряда так или иначе.
добавлено автор Damien_The_Unbeliever, источник
Тогда проверьте свои предположения. That' s много внутренних объединений в том вопросе - если кто-либо из тех соединений терпит неудачу, you' ll производят нулевую вставку ряда.
добавлено автор Damien_The_Unbeliever, источник
Damien_The_Unbeliever: Это было выполнено успешно, но я не вижу отчета, вставленного в целевой стол
добавлено автор CRM Guy, источник

1 ответы

**

Выполните этот вопрос в sql и расследуйте свой спусковой механизм

**

SELECT
        tu.name AS User_Name,
        tat.assessmentType AS Assessment_Type,
        tb.name AS Business_Class_Name,
        tr.name AS Region_Name,
        tc.name AS Country_Name,
        tf.facilityName AS Terminal_Name, 
        myparentTable.ovr_terminal_rating AS Terminal_Rating,
        CONVERT(VARCHAR(10), myparentTable.dateOfInspection, 103) AS Date_of_Inspection, 
        CONVERT(VARCHAR(10), myparentTable.dateNextInspectionDue, 103) AS Expiry_date_of_rating,
        CONVERT(VARCHAR(10), myparentTable.summ_lastUpdated, 103) AS lastUpdated

     from  TQA_USER_ASSESSMENT myParentTable   INNER JOIN
            dbo.TQA_USERS tu ON myParentTable.userID=tu.userID INNER JOIN
            dbo.TQA_ASSESSMENT_TYPE AS tat ON tat.assessmentTypeID = myParentTable.assessmentTypeID INNER JOIN
            dbo.TQA_FACILITIES AS tf ON tf.facilityID = myParentTable.facilityID INNER JOIN
            dbo.TQA_ACCESS ta ON ta.facilityID=tf.facilityID INNER JOIN
            dbo.TQA_BUSINESS_CLASSES tb ON tb.businessClassID= ta.businessClassID INNER JOIN
            dbo.TQA_REGIONS tr ON tr.regionID= ta.regionID INNER JOIN
            dbo.TQA_COUNTRIES tc ON tc.countryID= ta.countryID
        where 
        myParentTable.assessmentTypeID = 'whatever u added'
    and myParentTable.userID='whatever u added'
    and myParentTable.facilityID = 'whatever u added'
0
добавлено
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

dbGeeks
dbGeeks
545 участник(ов)

Чат про базы данных, их устройство и приемы работы с ними. Разрешаются любые адеватные дискуссии в рамках тематики чата.

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)

Разработка СУБД
Разработка СУБД
143 участник(ов)