Как зарегистрировать количество строк, затронутых SSIS Execute SQL Task

Когда я выполняю оператор sql, например "Выбрать...", я вижу только "... 100%" завершено...

Я хочу зарегистрировать количество затронутых строк.

Как мы можем сделать это?


person R.D    schedule 28.08.2009    source источник


Ответы (3)


запустите свой SELECT из хранимой процедуры, где вы можете записать количество строк в таблицу или сделать что-нибудь еще, чтобы записать его...

CREATE PROCEDURE SSIS_TaskA
AS

DECLARE @Rows  int

SELECT ... --your select goes here


SELECT @Rows=@@ROWCOUNT

INSERT INTO YourLogTable
        (RunDate,Message)
    VALUES
        (GETDATE(),'Selected '+CONVERT(varchar(10),ISNULL(@Rows,0))+' rows in SSIS_TaskA')

GO
person KM.    schedule 28.08.2009
comment
нет ли менее хакерского способа - person R.D; 29.08.2009
comment
Я думаю, что выполнение SSIS запроса, который не находится в хранимой процедуре, является взломом. Запуск процедуры SSIS позволяет вам группировать команды вместе, что вы и пытаетесь сделать. - person KM.; 31.08.2009

Когда вы используете задачу SQL для выбора, большую часть времени вы указываете в качестве назначения объект DataSet, вы можете подсчитать количество линий из набора данных.

person Polo    schedule 01.09.2009

Я считаю, что вы могли бы использовать предложение вывода t-sql в своем операторе обновления или вставки и зафиксировать его как переменную ssis... или просто поместить его в таблицу sql.

вот пример... дерьмово, но это пример

UPDATE TOP (10) HumanResources.Employee
SET VacationHours = VacationHours * 1.25 
OUTPUT INSERTED.EmployeeID,
       DELETED.VacationHours,
       INSERTED.VacationHours,
       INSERTED.ModifiedDate
INTO @MyTableVar;

Вы можете вывести @@ROWCOUNT в любом месте, где вам нужно.

Вот синтаксис вывода

http://technet.microsoft.com/en-us/library/ms177564.aspx

person KevinV    schedule 02.12.2009