From c3c4265450be8d449e65219a130dfc14cc5e0b44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=87=8C=E7=BF=94?= <963304364@qq.com> Date: Thu, 29 Sep 2022 05:17:37 +0000 Subject: [PATCH 1/5] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20=E7=AC=AC=E5=85=AB?= =?UTF-8?q?=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/.keep" diff --git "a/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/.keep" "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From ce2cd4f6890102f6021dcd991d7a136c815d9ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=87=8C=E7=BF=94?= <963304364@qq.com> Date: Thu, 29 Sep 2022 05:17:46 +0000 Subject: [PATCH 2/5] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\347\254\224\350\256\260/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/.keep" diff --git "a/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/.keep" "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From b7243efb6be0057fe0eb5b9b3a45988187e78dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=87=8C=E7=BF=94?= <963304364@qq.com> Date: Thu, 29 Sep 2022 05:17:54 +0000 Subject: [PATCH 3/5] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\344\275\234\344\270\232/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232/.keep" diff --git "a/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232/.keep" "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 5d5d7a4bf61ab8bf216231642023fa53b7fc18f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=87=8C=E7=BF=94?= <963304364@qq.com> Date: Thu, 29 Sep 2022 05:18:12 +0000 Subject: [PATCH 4/5] =?UTF-8?q?=E6=9D=A8=E5=87=8C=E7=BF=94=2022?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 杨凌翔 <963304364@qq.com> --- .../\344\275\234\344\270\232/test.sql" | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 "22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232/test.sql" diff --git "a/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232/test.sql" "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232/test.sql" new file mode 100644 index 0000000..882ea66 --- /dev/null +++ "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\344\275\234\344\270\232/test.sql" @@ -0,0 +1,62 @@ +--1.--假设刘备取款6000,(添加check约束,设置账户余额必须>=0),要求:使用事务实现,修改余额和添加取款记录两步操作使用事务 +alter table BankCard add constraint CK_Money check(CardMoney >= 0) + +declare @myError int = 0 +declare @getMoney float = 6000 +declare @carID varchar(10) +declare @name varchar(10) +declare @Phone varchar(10) +set @name = '刘备' + +select @carID = (select b.CardNo from AccountInfo a inner join BankCard b on a.AccountId =b.AccountId where RealName = @name) +select @Phone = (select a.AccountPhone from AccountInfo a inner join BankCard b on a.AccountId =b.AccountId where RealName = @name) + +begin transaction A +update BankCard set CardMoney -= @getMoney where CardNo = @carID +set @myError += @@ERROR +insert into CardExchange values(@carID,0,@getMoney,getdate()) +set @myError += @@ERROR + +if(@myError = 0) +begin + commit transaction A +end +else +begin + rollback transaction B +end +go + +--2.--刘备向张飞转账1000元,(添加check约束,设置账户余额必须>=0) +alter table BankCard add constraint CK_Money check(CardMoney >= 0) +declare @myError int = 0 +declare @getMoney float = 1000 +declare @carID varchar(10) +declare @carID1 varchar(10) +declare @name varchar(10) +declare @name1 varchar(10) +declare @Phone varchar(10) +declare @Phone1 varchar(10) +set @name = '刘备' +set @name1 = '张飞' +select @carID = (select b.CardNo from AccountInfo a inner join BankCard b on a.AccountId =b.AccountId where RealName = @name) +select @Phone = (select a.AccountPhone from AccountInfo a inner join BankCard b on a.AccountId =b.AccountId where RealName = @name) +select @carID1 = (select b.CardNo from AccountInfo a inner join BankCard b on a.AccountId =b.AccountId where RealName = @name1) +select @Phone1 = (select a.AccountPhone from AccountInfo a inner join BankCard b on a.AccountId =b.AccountId where RealName = @name1) + +begin transaction +update BankCard set CardMoney -= @getMoney where CardNo = @carID +set @myError += @@ERROR +update BankCard set CardMoney += @getMoney where CardNo = @carID1 +set @myError += @@ERROR +insert into CardTransfer values(@carID,@carID1,@getMoney,getdate()) +set @myError += @@ERROR + +if(@myError = 0) +begin + commit transaction +end +else +begin + rollback transaction +end \ No newline at end of file -- Gitee From 3281ce75d2b522e83e4f3c982bb44921c87549ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=87=8C=E7=BF=94?= <963304364@qq.com> Date: Thu, 29 Sep 2022 05:18:43 +0000 Subject: [PATCH 5/5] =?UTF-8?q?=E6=9D=A8=E5=87=8C=E7=BF=94=2022?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 杨凌翔 <963304364@qq.com> --- .../2022-9-28-\344\272\213\345\212\241.md" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/2022-9-28-\344\272\213\345\212\241.md" diff --git "a/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/2022-9-28-\344\272\213\345\212\241.md" "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/2022-9-28-\344\272\213\345\212\241.md" new file mode 100644 index 0000000..6754aaf --- /dev/null +++ "b/22 \346\235\250\345\207\214\347\277\224/\347\254\254\345\205\253\346\254\241\344\275\234\344\270\232/\347\254\224\350\256\260/2022-9-28-\344\272\213\345\212\241.md" @@ -0,0 +1,24 @@ +| 8、事务 | | | +| ------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| | [2](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_2) | | +| | [3](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_3) | ### Transaction | +| | [4](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_4) | | +| | [5](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_5) | 一般来说,事务具有四个标准属性,分别是原子性(***\*A\****tomicity,或称不可分割性)、一致性(***\*C\****onsistency)、隔离性(***\*I\****solation,又称独立性)、持久性(***\*D\****urability),简称 ***\*ACID\****。 | +| | [6](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_6) | | +| | [7](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_7) | ***\*自动提交事物\****: 是SQL Server默认的一种事务模式,每条Sql语句都被看成一个事务进行处理。 | +| | [8](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_8) | | +| | [9](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_9) | ***\*显式事务\****: T-sql标明,由Begin Transaction开启事务开始,由Commit Transaction 提交事务、Rollback Transaction 回滚事务结束。 | +| | [10](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_10) | | +| | [11](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_11) | 开始语句 | +| | [12](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_12) | | +| | [13](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_13) | begin transaction | +| | [14](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_14) | | +| | [15](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_15) | 用@@errorr来判断是否回滚 | +| | [16](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_16) | | +| | [17](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_17) | 提交语句 | +| | [18](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_18) | | +| | [19](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_19) | commit transaction | +| | [20](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_20) | | +| | [21](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_21) | 回滚语句 | +| | [22](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_22) | | +| | [23](https://gitee.com/level-21-software-class-4/advanced-sql/pulls/301/files#7bafea43b5dcc0b69c03d5bb093d41943430655d_0_23) | rollback transaction | \ No newline at end of file -- Gitee