Я просто создаю простую инкрементную нагрузку SSIS, чтобы разобраться в процессе, и в настоящее время у меня проблема с моей таблицей аудита. Происходит то, что загрузка будет выполняться нормально, и новая строка в таблице аудита будет вставлена из первой задачи выполнения, но когда я go обновляю поле AuditEndDate в таблице аудита в конце процесса загрузки, он обновляет только первую строку в таблице. См. Ниже для справки.
Моя таблица аудита состоит из:
AuditID INT (первичный ключ)
TaskID INT
AuditStartDate DATETIME
AuditEndDate DATETIME
Моя загрузка процесс успешен и работает. Теперь я представил задачу выполнения SQL в начале загрузки с хранимой процедурой, которая вставляет новую строку в таблицу аудита с новым номером AuditID и датой начала. В конце процесса загрузки у меня есть еще одна задача выполнения SQL, которая просто обновляет поле AuditEndDate в той же строке с помощью GETDATE ().
Я использую источники OLE DB
Моя процедура загрузки выглядит так:
Моя хранимая процедура для Вставка в таблицу аудита в первой задаче;
(
@TaskID INT
, @LoadStartDateTime datetime
, @LoadEndDateTime datetime
)
AS
BEGIN
SET NOCOUNT ON;
SET @LoadStartDateTime = ISNULL(@LoadStartDateTime, GETDATE())
-- Insert the log record
INSERT INTO [SM_SSIS_Audit_Log]
(
TaskID
, LoadStartDateTime
, LoadEndDateTime
) VALUES (
@TaskID
, @LoadStartDateTime
, @LoadEndDateTime
)
END
Моя хранимая процедура для обновления таблицы в последней задаче выполнения;
(
@AuditID INT
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
UPDATE SM_SSIS_Audit_Log
SET
LoadEndDateTime = GETDATE()
WHERE
AuditID = @AuditID
SET NOCOUNT OFF;
END
Моя задача выполнения для вставки:
[SM_SSIS_LoadBegin] ?, NULL, NULL
Моя задача выполнения для обновления:
[SM_SSIS_TaskEnd] @AuditID = ?
Настройка My Parameter в первой задаче выполнения:
Мои настройки параметров в последней задаче выполнения:
Моя таблица аудита выглядит так:
Как видите, обновляется только первая строка, а не текущая созданная строка. Кто-нибудь знает, что я сделал не так, и предложите что-нибудь, пожалуйста.
Если вам нужна дополнительная информация, прокомментируйте, и я помогу.
Большое спасибо!
SM