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

Вид: 7095|Ответ: 0

Транзакции и хранящиеся процедуры, лежащие в основе базы данных

[Скопировать ссылку]
Опубликовано 15.03.2019 22:45:21 | | | |


предисловие


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


СМС


Сначала давайте создадим нужные нам таблицы



Давайте сначала выполним SQL-оператор


Этот код вычитает остаток 0001 на 1000 и остаток 0002 на 1000. Но при построении таблицы мы добавили ограничения, и баланс должен быть больше или равен 10.

Результаты следующие:
                  

Итак, эта ошибка при выполнении кода: "Оператор UPDATE конфликтует с ограничением CHECK «CH_balance». Конфликт возникает в базе данных "DemoDb" с таблицой "dbo. Банк", столбец 'balance'。” 。 Если одно утверждение ошибочно, то выполнено ли другое с успехом.

Результаты запроса следующие:
                     

Мы увидим, что другое SQL-оператор не содержит ошибок, но всё равно не выполняет успешную фиксацию. Вот что мы раскроем для вас.

#Транзакции

Что такое транзакция?
Строго говоря, если операция удовлетворяет атомарности, персистентности, изоляции и согласованности, то операция называется транзакцией.
Автоматически отправляйте транзакции: в SQL Server. По умолчанию каждое SQL-оператор является транзакцией.
Показать транзакции: Каждая транзакция начинается явно с выписки BEGIN TRANSACTION и заканчивается явно выпиской COMMIT или ROLLBACK.



Упомянутая выше демонстрация закончилась откатом, поэтому выполнение SQL не действует. Данные не были успешно изменены.

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

Существуют две системные переменные, которые логируют неисправный SQL (SQL). - @@rowcount возвращает количество затронутых строк @@error возвращает неправильное кодирование

Давайте используем эти две системные переменные, чтобы определить, есть ли ошибка в SQL, и выполнить два вышеуказанных SQL-оператора.



#Хранящиеся процедуры

Смысл: Инкапсулируйте выполняемый процесс (который может быть сложным) в имя и используйте это имя для выполнения процесса.



>
Безпараметрические сохранённые процедуры


>Хранимые процедуры с параметрами



>Сохранённая процедура с возвратным значением



Попробуйте catch в базе данных



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


Эпилог


Хранящиеся процедуры чаще используются в наших проектах, во многих древних системах, бизнес-логика написана в хранимых процедурах, а люди, стоящие за ней, поддерживают её, и они просто хотят за считанные минуты бить голову собаки перед собой. В общем, бизнес-логика записывается в коде, но количество раз, когда данные читаются из базы данных, а бизнес-логика — в процессе хранения. В прошлом году очень сложная цепочка бизнес-логики в проекте компании была перенесена в процесс хранения, что увеличило скорость в десятки раз. Конечно, особые обстоятельства рассматриваются особо. Конкретное применение зависит от конкретной ситуации.






(Примечание: приведённый выше материал — это учебные заметки года, если есть что-то неуместное, пожалуйста, исправьте это!) )









Предыдущий:Я понимаю систему обслуживания клиентов крупных компаний
Следующий:Видео Андейл HCNP и HCIE
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com