SQL Azure / SQL Server 2008 - Хранимая процедура - не вставлять, если ошибка в любой момент - PullRequest
0 голосов
/ 21 января 2012

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

SQL Azure подвержен временным ошибкам, тайм-аутам, отклоненным соединениям и т. Д. Иногда при открытии соединенияВ других случаях при выполнении запроса.

Я вставляю строку в SQL Azure с помощью хранимой процедуры (в основном это система обмена сообщениями, поэтому каждое сообщение следует отправлять / вставлять только один раз).

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

Мне нужна хранимая процедура для вставкигребите и подтвердите мне, что он был вставлен ИЛИ полностью потерпел неудачу и НЕ вставил его.

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

Что будет делать система, которая имеет дело с финансовыми транзакциями?

Поскольку это всего лишь один оператор вставки, правильно ли я считаю, что включение его в транзакцию не будет иметь никакого эффекта?

Может ли кто-нибудь уточнить для меня или даже указать мне какую-то документацию, которую я должен прочитать, чтобы понять это сам?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2012

Согласно предложению gbn, я добавил дополнительный ключ, а не идентификатор, который я мог бы использовать для идентификации дубликатов и проверки этого перед вставкой

0 голосов
/ 22 января 2012

Предположим, что в процедуре более одной вставки (некоторые выбирают после вставки?). Вы можете запустить транзакцию в приложении.таким образом - если вы делаете фиксацию транзакции в приложении, и она завершается успешно, все сделано.

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