предговор
Миналия път щях да организирам цялото основно съдържание на SQL, но установих, че часовникът започва да се върти преди да се усетя. Тази статия продължава по-долу.
Текст
Първо, нека създадем таблиците, които ни трябват
Нека първо изпълним SQL оператор
Този код изважда остатъка от 0001 по 1000 и остатъка от 0002 по 1000. Но добавихме ограничения, когато изграждахме масата, и балансът трябва да е по-голям или равен на 10.
Резултатите са следните:
Така че тази грешка при изпълнение на кода: "Изявлението UPDATE противоречи на ограничението CHECK "CH_balance". Конфликтът възниква в базата данни "DemoDb" с таблицата "dbo. Bank", колона 'balance'。” 。 Ако едно твърдение е грешка, тогава дали другото е изпълнено успешно.
Резултатите от заявката са следните:
Ще видим, че друго SQL твърдение няма грешки, но все пак не се потвърждава успешно. Ето какво ще ви разкрием.
#Транзакции
Какво е транзакция? Строго погледнато, ако една операция удовлетворява атомичност, персистентност, изолация и консистентност, тогава операцията се нарича транзакция. Автоматично подаване на транзакции: в SQL Server. По подразбиране всяко SQL изявление е транзакция. Покажи транзакции: Всяка транзакция започва изрично с изявление START TRANSACTION и завършва изрично с COMMIT или ROLLBACK изявление.
Демото, което споменахме по-горе, завърши с Rollback, така че SQL изпълнението не влиза в сила. Данните не бяха успешно модифицирани.
В реалната разработка и приложение обикновено създаваме слой от транзакции извън не-заявното изявление, за да гарантираме целостта и последователността на данните според реалните нужди. Или направи всичко, или не го правиш всичко.
Има две системни променливи, които записват дефектния SQL код. - @@rowcount връща броя на засегнатите редове, @@error връща грешно кодиране
Нека използваме тези две системни променливи, за да определим дали има грешка в SQL и да изпълним горните две SQL оператори.
#Съхранени процедури
Значение: Капсулирайте процес, който се извършва (който може да е сложен), в име и след това използвайте това име, за да изпълните процеса.
> Процедури за съхранение без параметри
>Съхранени процедури с параметри
>Съхранена процедура с връщана стойност
Опитай catch в базата данни
Съществуват и съхранени процедури с стандартни параметри, които бяха споменати в предишната статия за пагинация.
Епилог
Съхранените процедури се използват по-често в нашите реални проекти, много древни системи, бизнес логиката е написана в съхранени процедури, а хората зад тях я поддържат, и те просто искат да удрят главата на кучето пред себе си за минути. Общо взето, бизнес логиката се записва в кода, но броят пъти, в които данните се четат от базата данни, и бизнес логиката се записва в процеса на съхранение. Миналата година много сложна поредица от бизнес логика в проекта на компанията беше прехвърлена в процеса на съхранение, което увеличи скоростта десетки пъти. Разбира се, специалните обстоятелства се третират специално. Конкретното приложение зависи от реалния сценарий.
(Забележка: Горното съдържание е учебните бележки за годината, ако има нещо неподходящо, моля, коригирайте го!) )
|