Назначение TRAN и COMMIT в одной / нескольких SQL INSERT SELECT UPDATE DELETE - PullRequest
1 голос
/ 11 февраля 2020

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

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

Я набрал нижеприведенную команду согласно моей необходимости .

update idx_task set IDXTaskStatusDE=4 where ID='task_ID'

Затем разработчик отправил мне следующий запрос и сказал, что я поступаю неправильно.

Use Works
    begin tran
    update idx_task set IDXTaskStatusDE=4 where ID='task_ID'
    commit tran

Ответ разработчика по электронной почте :
При выдаче Adho c заявления непосредственно против SQL, это хорошая идея, чтобы обернуть ваши заявления в транзакции, на случай, если что-то пойдет не так, и вам нужно откат. Обновление одной и той же таблицы дважды будет отличаться от транзакции или без нее. Следовательно, это профессиональная практика, которая может быть неизвестна любителям, таким как вы. Эта работа, кажется, выходит за рамки вашей основной роли. Пожалуйста, обсудите это с вашим боссом и получите в своей команде профессию SQL разработчика.

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

Мой вопрос:
1). Может, кто-нибудь представит здесь простые теоретические объяснения различий, важности переноса одного оператора обновления в trans? 2.) Это для какой-либо предыдущей, будущей, безопасной или профессиональной практики в SQL сообществе разработчиков?

Благодарственное письмо всем спасителям здесь
Заранее спасибо всем типам ответов. Ваши любые отзывы помогут мне получить знания в любом случае:)

Береги себя !!

1 Ответ

1 голос
/ 21 февраля 2020

См. Ветку этого вопроса. Это очистит ваше замешательство. Использование транзакции в одном операторе обновления

@ Panagiotis Kanavos указало и четко сформулировало.

Просто знайте простое значение следующего термина, когда вы читаете о SQL Транзакциях:

1.) Атоми c: «Атоми c» означает, что «нельзя разделить или разделить на более мелкие части ". Применительно к 1NF это означает, что столбец не должен содержать более одного значения. Он не должен составлять или объединять ценности, которые имеют собственное значение.

2.) Commit: оператор COMMIT в SQL завершает транзакцию в системе управления реляционными базами данных (RDBMS) и делает все изменения видимыми для других пользователей.

3.) Блокировка: это механизм для обеспечения согласованности данных. SQL Сервер блокирует объекты при запуске транзакции. Когда транзакция завершена, SQL Сервер освобождает заблокированный объект. Следовательно, в вашем случае, как указал @Panagiotis Kanavos, TRAN выполняет работу по блокировке всех других команд, если они выполняются другими разработчиками, работающими параллельно с теми же данными, над которыми вы выполняете оператор UPDATE.

Надеюсь это поможет. Я не думаю, что было бы больше понизить как "простые слова", чем это. Тем не менее, не стесняйтесь спрашивать, есть ли у вас путаница.

...