From e8e9cec95fb93fabe2c393617f3ebc84806d7985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= <3032059138@qq.com> Date: Sun, 9 Oct 2022 15:09:27 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁贵森 <3032059138@qq.com> --- ...7\347\250\213\347\254\224\350\256\260.txt" | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 "28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" diff --git "a/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" "b/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" new file mode 100644 index 0000000..ec8ca8c --- /dev/null +++ "b/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" @@ -0,0 +1,96 @@ +##### 自定义存储过程 + +存储过程:已预编译为一个可执行过程的一个或多个SQL语句的集合。 + +**创建存储过程** + +1.没有输入参数,没有输出参数的存储过程。 + +```sql +create proc <存储过程名称> +as + +go +``` + + +2.有输入参数,没有输出参数的存储过程 + +```sql +create proc <存储过程名称> +<变量1> <数据类型> +<变量2> <数据类型> +... +as + +go + + +3.有输入参数,没有输出参数,但是有返回值的存储过程(返回值必须整数)。 + +```sql +create proc <存储过程名称> +<变量1> <数据类型> +<变量2> <数据类型> +... +as + +return 整数 +go +``` + +4.有输入参数,有输出参数的存储过程 & 一个变量具备同时输入输出参数的存储过程 + +```sql +create proc <存储过程名称> +<变量1> <数据类型> output +<变量2> <数据类型> output +... +as + +return 整数 +go +``` + + +**执行存储过程** + +```sql +--无参 +exec <存储过程名称> +--带参 +exec <存储过程名称> <形参1>,<形参2>,... +--带参带返回值 +declare @变量 +exec @变量 = <存储过程名称> <形参1>,<形参2>,... +--有输入参数,有输出参数的存储过程 +declare @变量 +exec <存储过程名称> <形参1>,<形参2>,@变量 output +--一个变量同时具备输入输出功能 +declare @变量 <数据类型> = 值 +exec <存储过程名称> <形参1>,<形参2>,@变量 output +``` + + +**删除存储过程** + +```sql +drop procedure <存储过程名称> +``` + +***存储过程的优劣势*** + +优势:提高性能,降低网络开销,便于进行代码移植,有更强的安全性 + +劣势:他需要专门的数据库开发人员维护,设计逻辑变更,修改存储过程没有sql灵活 + + +***常见的系统存储过程*** + +exec sp_databases 查看数据库 + +exec sp_tables 查看表 + +exec sp_columns 《表名》 查看数据表的列 + +exec sp_stored_procedures 查看存储过程 -- Gitee From 3289f3b689b8020e451428b5a89d016de3a8b12c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= <3032059138@qq.com> Date: Sun, 9 Oct 2022 15:09:57 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=2028?= =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE/=E4=BD=9C=E4=B8=9A/2022-1007?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E8=BF=87=E7=A8=8B=E7=AC=94=E8=AE=B0.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7\347\250\213\347\254\224\350\256\260.txt" | 96 ------------------- 1 file changed, 96 deletions(-) delete mode 100644 "28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" diff --git "a/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" "b/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" deleted file mode 100644 index ec8ca8c..0000000 --- "a/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" +++ /dev/null @@ -1,96 +0,0 @@ -##### 自定义存储过程 - -存储过程:已预编译为一个可执行过程的一个或多个SQL语句的集合。 - -**创建存储过程** - -1.没有输入参数,没有输出参数的存储过程。 - -```sql -create proc <存储过程名称> -as - -go -``` - - -2.有输入参数,没有输出参数的存储过程 - -```sql -create proc <存储过程名称> -<变量1> <数据类型> -<变量2> <数据类型> -... -as - -go - - -3.有输入参数,没有输出参数,但是有返回值的存储过程(返回值必须整数)。 - -```sql -create proc <存储过程名称> -<变量1> <数据类型> -<变量2> <数据类型> -... -as - -return 整数 -go -``` - -4.有输入参数,有输出参数的存储过程 & 一个变量具备同时输入输出参数的存储过程 - -```sql -create proc <存储过程名称> -<变量1> <数据类型> output -<变量2> <数据类型> output -... -as - -return 整数 -go -``` - - -**执行存储过程** - -```sql ---无参 -exec <存储过程名称> ---带参 -exec <存储过程名称> <形参1>,<形参2>,... ---带参带返回值 -declare @变量 -exec @变量 = <存储过程名称> <形参1>,<形参2>,... ---有输入参数,有输出参数的存储过程 -declare @变量 -exec <存储过程名称> <形参1>,<形参2>,@变量 output ---一个变量同时具备输入输出功能 -declare @变量 <数据类型> = 值 -exec <存储过程名称> <形参1>,<形参2>,@变量 output -``` - - -**删除存储过程** - -```sql -drop procedure <存储过程名称> -``` - -***存储过程的优劣势*** - -优势:提高性能,降低网络开销,便于进行代码移植,有更强的安全性 - -劣势:他需要专门的数据库开发人员维护,设计逻辑变更,修改存储过程没有sql灵活 - - -***常见的系统存储过程*** - -exec sp_databases 查看数据库 - -exec sp_tables 查看表 - -exec sp_columns 《表名》 查看数据表的列 - -exec sp_stored_procedures 查看存储过程 -- Gitee From 46783b2d2675c7a5491c85ce6dac856d0fce59a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= <3032059138@qq.com> Date: Sun, 9 Oct 2022 15:10:18 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁贵森 <3032059138@qq.com> --- ...7\347\250\213\344\275\234\344\270\232.sql" | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 "28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\344\275\234\344\270\232.sql" diff --git "a/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\344\275\234\344\270\232.sql" "b/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\344\275\234\344\270\232.sql" new file mode 100644 index 0000000..12fbdd0 --- /dev/null +++ "b/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\344\275\234\344\270\232.sql" @@ -0,0 +1,76 @@ +use BankTest +go +--洢ʵֲѯ˻͵п˻Ϣ,ʾпţ˻ +create proc func_money +as + select b.CardNo п ,a.RealName ,b.CardMoney ˻ from BankCard b join AccountInfo a on a.AccountId=b.AccountId + where CardMoney=(select min(CardMoney) from BankCard) + + exec func_money +-- ģпǮпţǮʵִǮ +go +create proc proc_cun +@cardid varchar(20), +@money money +as + update BankCard set CardMoney=CardMoney+@money where CardNo=@cardid + insert into CardExchange(CardNo,MoneyInBank,MoneyOutBank,ExchangeTime) values (@cardid,@money,0,GETDATE()) + + exec proc_cun'6225125478544587',1000 +-- ģпȡǮпţȡǮʵȡǮȡǮɹ1ȡǮʧܷ-1 +go +create proc proc_mon +@cardid varchar(20), +@money money +as + update BankCard set CardMoney=@money where CardNo=@cardid + insert into CardExchange(CardNo,MoneyInBank,MoneyOutBank,ExchangeTime) values (@cardid,0,@money,GETDATE()) + if @@ERROR<> 0 + return 1 + else + return -1 + +exec proc_mon'6225125478544587',1000 + + +go +-- **ѯijʱεдȡϢԼܽ**ȡܽ뿪ʼʱ䣬ʱ䣬ʾȡϢͬʱشܽȡܽ +create proc proc_times +@begintime smalldatetime, +@overtime smalldatetime, +@cunqian money output, +@quqian money output +as + declare @begin smalldatetime,@over smalldatetime,@cun money,@qu money + select @cun=sum(b.CardMoney),@qu=sum(CardMoney) from BankCard b join CardExchange c on c.CardNo=b.CardNo where ExchangeTime between @begin+'00:00:00' and @over+'23:59:59' +go + declare @begin smalldatetime,@over smalldatetime,@cun money,@qu money + exec proc_times '2022-09-20','2022-09-20',@cun output,@qu output + select @cun,@qu + +-- ****û룬ûȷ볤<8Զ8λ +go +create proc yonghu +@zhanghao varchar(20), +@passward varchar(20) output +as + if not exists(select * from BankCard where @zhanghao=CardNo and @passward=CardPwd) + set @passward='˺Ż' + else + begin + if len(@passward)<8 + begin + declare @len int=8-len(@passward) + declare @aa int =1 + while @aa<=@len + begin + set @passward = @passward+cast(floor(rand()*10)as varchar(1)) + set @aa=@aa+1 + end + update BankCard set CardPwd= @passward,CardNo=@zhanghao + end + end +go +declare @passward varchar(20)='123456' +exec yonghu'32254526541544555',@passward output +select @passward -- Gitee From f4b5f8283571da25807d6e3598a464963a973fdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= <3032059138@qq.com> Date: Sun, 9 Oct 2022 15:10:37 +0000 Subject: [PATCH 4/4] =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁贵森 <3032059138@qq.com> --- ...7\347\250\213\347\254\224\350\256\260.txt" | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 "28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" diff --git "a/28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" "b/28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" new file mode 100644 index 0000000..ec8ca8c --- /dev/null +++ "b/28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1007\345\255\230\345\202\250\350\277\207\347\250\213\347\254\224\350\256\260.txt" @@ -0,0 +1,96 @@ +##### 自定义存储过程 + +存储过程:已预编译为一个可执行过程的一个或多个SQL语句的集合。 + +**创建存储过程** + +1.没有输入参数,没有输出参数的存储过程。 + +```sql +create proc <存储过程名称> +as + +go +``` + + +2.有输入参数,没有输出参数的存储过程 + +```sql +create proc <存储过程名称> +<变量1> <数据类型> +<变量2> <数据类型> +... +as + +go + + +3.有输入参数,没有输出参数,但是有返回值的存储过程(返回值必须整数)。 + +```sql +create proc <存储过程名称> +<变量1> <数据类型> +<变量2> <数据类型> +... +as + +return 整数 +go +``` + +4.有输入参数,有输出参数的存储过程 & 一个变量具备同时输入输出参数的存储过程 + +```sql +create proc <存储过程名称> +<变量1> <数据类型> output +<变量2> <数据类型> output +... +as + +return 整数 +go +``` + + +**执行存储过程** + +```sql +--无参 +exec <存储过程名称> +--带参 +exec <存储过程名称> <形参1>,<形参2>,... +--带参带返回值 +declare @变量 +exec @变量 = <存储过程名称> <形参1>,<形参2>,... +--有输入参数,有输出参数的存储过程 +declare @变量 +exec <存储过程名称> <形参1>,<形参2>,@变量 output +--一个变量同时具备输入输出功能 +declare @变量 <数据类型> = 值 +exec <存储过程名称> <形参1>,<形参2>,@变量 output +``` + + +**删除存储过程** + +```sql +drop procedure <存储过程名称> +``` + +***存储过程的优劣势*** + +优势:提高性能,降低网络开销,便于进行代码移植,有更强的安全性 + +劣势:他需要专门的数据库开发人员维护,设计逻辑变更,修改存储过程没有sql灵活 + + +***常见的系统存储过程*** + +exec sp_databases 查看数据库 + +exec sp_tables 查看表 + +exec sp_columns 《表名》 查看数据表的列 + +exec sp_stored_procedures 查看存储过程 -- Gitee