|
|
Опубликовано 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
|