Оле db команда & сделки. Общая Ошибка

У меня есть Команда OLE DB, которая первоначально содержала простые три обновления линии:

обновить набор raw_CommissionPaid PolicyNumber =? где PolicyNumber =?

и это хорошо работало, сделал точно как ожидалось, и все было хорошо.

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

BEGIN TRY BEGIN TRAN UpdateCommissionsPaidPolNo

обновить набор raw_CommissionPaid PolicyNumber =? где PolicyNumber =?

IF @@ROWCOUNT <> 1 RAISERROR('Row count <> 1', 11, 1)

COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN UpdateCommissionsPaidPolNo

  PRINT 'UpdateCommissionsPaidPolicyNumber script failed'

  SELECT
        ERROR_MESSAGE() as ErrorMessage            END CATCH

Однако, это дало мне "Синтаксическую ошибку или общую ошибку" сообщение, что это обычно дает. Я помнил от предыдущей проблемы что иногда это параметры карты косяка к? если они включены в другом SQL, я думал, что это могло бы быть проблемой так изменился, это к этому просто упаковывает:

Declare @FNumber varchar(20) declare @LNumber varchar(20)

set @FNumber = ? set @LNumber = ?

BEGIN TRY BEGIN TRAN UpdateCommissionsPaidPolNo

update raw_CommissionPaid set PolicyNumber = @FNumber where PolicyNumber = @LNumber

IF @@ROWCOUNT <> 1 RAISERROR('Row count <> 1', 11, 1)

COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN UpdateCommissionsPaidPolNo

  PRINT 'UpdateCommissionsPaidPolicyNumber script failed'

  SELECT
        ERROR_MESSAGE() as ErrorMessage            END CATCH

но от этого я все еще добираюсь:

Синтаксическая ошибка, нарушение разрешения или другой не определенная ошибка

я понял, что это могло бы быть из-за печати или возвращения сообщения об ошибке, но удаление их ничего не изменяет, это все еще терпит неудачу

Я уверен, что sql действителен, когда я проверил его в студии управления SQL-сервером.

Кто-либо столкнулся с этим? Есть ли настройки, которые я, как предполагается, изменяю, чтобы позволить этот вид изменения?

Заранее спасибо

0
nl ja de

1 ответы

После чтения Это место я узнал, что, если я поставил задачи потока данных собственность TransactionOption к поддержанному тогда, если она терпит неудачу, это, предположительно, катит провальный раздел назад сам.

Вооруженный этим знанием я изобразил тогда единственную вещь, которую я должен был сделать, был, заставляют его понять, что многократные обновляемые ряды считались ошибкой. Так изменяя его на просто это:

update raw_CommissionPaid set PolicyNumber = ? where PolicyNumber = ?

IF @@ROWCOUNT <> 1 RAISERROR('Row count <> 1', 11, 1)

должен заставить его понизить себя до прежнего уровня.

0
добавлено
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)