Сохраненный процесс в задаче «Выполнение SQL», не сохраняющий изменения в базе данных - PullRequest
0 голосов
/ 09 октября 2018

У меня есть задача «Выполнение SQL» с использованием оператора Update, который я хотел бы изменить на хранимую процедуру.

Моя хранимая процедура прекрасно работает в SSMS, однако, когда я пытаюсь использовать хранимый процесс в задаче «Выполнение SQL», компонент не завершается с ошибкой, однако он не сохраняет обновленные изменения в базе данных.

Диспетчеры соединений надежны, так как оператор Update работает, и он даже не сможет вызвать сохраненный процесс, если диспетчер подключений в любом случае ошибался.

Я пытался удалить и воссоздать компонент, но это не помогло.Похоже, что запрос выполняется, успешно выполняется, а затем изменения откатываются.

enter image description here

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Я бы начал с проверки типа переменной pstream.Ваш сохраненный процесс ожидает INT, а вы передаете NUMERIC.Я предполагаю, что разбор не работает, как ожидалось.Попробуйте использовать переменную SSIS 'USER :: Pstream' в качестве Int32 и тип параметра задачи Sql в качестве LONG

. Я пробовал следующее и у меня работает.

CREATE TABLE dbo.TestTable(
    [BucketName] NVARCHAR(250),
    [DBName] NVARCHAR(250),
    [Pstream] INT
)

GO 

CREATE PROCEDURE dbo.UpdateBucket
    @BucketName NVARCHAR(250),
    @DbName NVARCHAR(250),
    @PStream INT
AS
BEGIN

    UPDATE dbo.TestTable
    SET BucketName = @BucketName
    where DBName = @DbName and Pstream = @PStream

END

GO

INSERT INTO dbo.TestTable VALUES ('A bucket', 'A database', 100)

enter image description here enter image description here

enter image description here

0 голосов
/ 09 октября 2018

Добавьте точку останова перед выполнением задачи, чтобы вы могли проверить переменные перед ее выполнением.Как только ваш пакет остановится на точке останова, используйте окно Watch, чтобы увидеть, какие текущие значения будут использоваться в вашем сохраненном процессе.Я подозреваю, что вы обнаружите, что они отличаются от ожидаемых.Если вы никогда не использовали Watch, это должно помочь вам:

Просмотр переменных во время отладки SSIS

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