0

トリガーの書き込みは初めてです。コード/マザーテーブルのレコードが影響を受けるとすぐにテーブルを挿入/更新するトリガーを作成しました。つまり、初めてレコードを挿入する場合、他の関連するレコードとともにそのレコードを挿入する必要があります新しいテーブルの情報。更新にも同じことが適用されます..以下は私が試したコードです.しかし、それがうまくいかないということは、コンパイルが成功したとしても..ターゲットテーブルにレコードを挿入できないことを意味します.. 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
4

1 に答える 1

0

**

SQL でこのクエリを実行し、ur トリガーのトラブルシューティングを行います

**

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'
于 2013-01-29T07:29:05.513 に答える