Tôi đã tạo một dự án SSIS bằng Mô hình triển khai 2012 bao gồm một gói duy nhất. Trong gói đó, tôi đã thêm Trình quản lý kết nối OLE DB, chỉ nó vào tempdb và thả Tác vụ tập lệnh xuống khung vẽ. Tôi cũng đã bật ghi nhật ký rõ ràng bằng Trình quản lý kết nối OLE DB đó và ghi lại OnInformationsự kiện.

Thông tin về SCR
Tôi đã cấu hình tác vụ kịch bản của mình để lấy hai tham số: System::ExecutionInstanceGUIDvàSystem::ServerExecutionID tôi sẽ thừa nhận tại thời điểm này, tôi đã không nhận thấy biến thứ hai cho đến khi câu trả lời của Marian. Trong nhiệm vụ, tôi đưa ra 2 sự kiện Thông tin để tôi có thể nhận được các giá trị được ghi lại. Điều này nên được ghi vào cả bảng rõ ràng (dbo.sysssislog) và ghi nhật ký "miễn phí" (catalog.operation_messages).
    public void Main()
    {
        bool fireAgain = true;
        string description = string.Empty;
        string variable = string.Empty;
        string value = string.Empty;
        variable = "System::ServerExecutionID";
        value = Dts.Variables[variable].Value.ToString();
        description = string.Format("{0}: {1}", variable, value);
        Dts.Events.FireInformation(0, "Reporting", description, string.Empty, 0, ref fireAgain);
        variable = "System::ExecutionInstanceGUID";
        value = Dts.Variables[variable].Value.ToString();
        description = string.Format("{0}: {1}", variable, value);
        Dts.Events.FireInformation(0, "Reporting", description, string.Empty, 0, ref fireAgain);
        Dts.TaskResult = (int)ScriptResults.Success;
    }
Triển khai và thực hiện
Sau đó tôi đã triển khai dự án của mình đến một máy chủ và thực hiện nó. 

Tôi đã mở Báo cáo hoạt động và nhấp vào SCR Fire info chi tiết nhiệm vụ.

Mục được khoanh tròn màu đỏ cho thấy chúng tôi đang xem chi tiết cho Chiến dịch 8, như mong đợi. Các dòng được tô sáng làOnInformation sự kiện làm nổi lên các giá trị của hai biến hệ thống đó. Cũng như mong đợi, giá trị System::ServerExecutionIDkhớp với những gì trong báo cáo. Giá trị của nó System::ExecutionInstanceGUIDlà vô nghĩa như mọi khi nhưng nó đã có mặt {3F515780-8062-40AA-B9EC-C320CBAC5EFD}.
Buộc tất cả lại với nhau
Bây giờ tôi đã có hai bản ghi khác nhau mà tôi muốn liên kết với nhau.
truy vấn sysssislog
Chạy truy vấn này đã kéo các hàng có liên quan từ bảng ghi nhật ký trường cũ.
SELECT
    L.event
,   L.source
,   L.message 
FROM
    dbo.sysssislog AS L
WHERE
    L.executionid = '{3F515780-8062-40AA-B9EC-C320CBAC5EFD}'
ORDER BY
    L.id ASC;
Kết quả trông như
event   source  message
PackageStart    ParameterTest   Beginning of package execution.
OnInformation   SCR Fire info   System::ServerExecutionID: 8
OnInformation   ParameterTest   System::ServerExecutionID: 8
OnInformation   SCR Fire info   System::ExecutionInstanceGUID: {3F515780-8062-40AA-B9EC-C320CBAC5EFD}
OnInformation   ParameterTest   System::ExecutionInstanceGUID: {3F515780-8062-40AA-B9EC-C320CBAC5EFD}
PackageEnd  ParameterTest   End of package execution.
danh mục.operation_messages truy vấn
Chạy truy vấn này đối với các cửa hàng SSISDB cho thấy tất cả các thông điệp mà là trong báo cáo trên và cũng khẳng định tôi có thể liên kết các giá trị trong messageđể operation_idcũng như trên đểdbo.sysssislog.executionid
SELECT 
    OM.* 
FROM 
    catalog.operation_messages AS OM
WHERE
    OM.operation_id = 8;
Những kết quả đó là
operation_message_id    operation_id    message_time    message_type    message_source_type message extended_info_id
30  8   2013-04-02 21:02:34.1418917 -05:00  10  30  ParameterTest:Validation has started.   NULL
31  8   2013-04-02 21:02:34.1738922 -05:00  10  40  SCR Fire info:Validation has started.   NULL
32  8   2013-04-02 21:02:34.1768872 -05:00  20  40  SCR Fire info:Validation is complete.   NULL
33  8   2013-04-02 21:02:34.1788903 -05:00  20  30  ParameterTest:Validation is complete.   NULL
34  8   2013-04-02 21:02:34.3349188 -05:00  30  30  ParameterTest:Start, 9:02:34 PM.    NULL
35  8   2013-04-02 21:02:34.4009253 -05:00  30  40  SCR Fire info:Start, 9:02:34 PM.    NULL
36  8   2013-04-02 21:02:34.4009253 -05:00  10  40  SCR Fire info:Validation has started.   NULL
37  8   2013-04-02 21:02:34.4019251 -05:00  20  40  SCR Fire info:Validation is complete.   NULL
38  8   2013-04-02 21:02:34.4219283 -05:00  70  40  SCR Fire info:Information: System::ServerExecutionID: 8 NULL
39  8   2013-04-02 21:02:34.4259295 -05:00  70  40  SCR Fire info:Information: System::ExecutionInstanceGUID: {3F515780-8062-40AA-B9EC-C320CBAC5EFD}    NULL
40  8   2013-04-02 21:02:34.4409316 -05:00  40  40  SCR Fire info:Finished, 9:02:34 PM, Elapsed time: 00:00:00.031. NULL
41  8   2013-04-02 21:02:34.4419388 -05:00  40  30  ParameterTest:Finished, 9:02:34 PM, Elapsed time: 00:00:00.125. NULL
Gói (lại
Khi gói được thực thi bên ngoài ngữ cảnh của danh mục SSISDB (còn gọi là qua SSDT-BI hoặc dòng lệnh đến .ispac), giá trị của System::ServerExecutionIDsẽ là 0. Điều đó có ý nghĩa, nhưng các độc giả trong tương lai sẽ sử dụng LEFT OUTER THAM GIA khi liên kết sysssislog với catalog.operation_messages nếu bạn muốn bắt tất cả thực thi của gói.
Hat tip, lời cảm ơn nồng nhiệt của tôi và tín dụng câu trả lời gửi đến Marian vì đã đưa tôi đi đúng hướng. Đưa ra lựa chọn giữa việc lưu trữ GUID (16 byte) và bigint (8 byte) trong bảng ghi nhật ký tóm tắt của tôi, đó là điều không có gì phải đắn đo đối với tôi: làm ơn tăng số nguyên lớn một cách đơn điệu.