SQL Server存储过程在存储过程在C#中调用的简单实现方法中调用的简单实现方法
主要给大家介绍了关于SQL Server存储过程在C#中调用的简单实现方法,文中通过示例代码介绍的非常详细,
对大家学习或者使用SQL Server存储过程具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
0. 简介简介
【定义】:存储过程(Stored Procedure) 是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库
中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
【优缺点】:存储过程优缺点都非常的明显!几乎每一篇讨论存储过程的文字,都是会说其他优点是balabala,缺点是
balabala,然而最后作者的结论都是:“我不推荐使用存储过程”。
具体的存储过程的优缺点这里就不详述了!
公司旧项目使用存储过程实现业务逻辑,没办法只能研究了一下 !
闲言碎语不要讲,书归正传,下面就开始存储过程!
1. 语法细节语法细节
变量与变量之间使用逗号隔开,语句结尾无标点符号
声明变量:declare @variate_name variate_type,例如声明并赋值:declare @name nvarchar(50) ='shanzm'
变量赋值:set @variate_name =value
打印变量:print @variate_name
begin……end 之间的SQL语句称之为一个代码块
可以使用if……else实现逻辑判断
创建存储过程:create procedure pro_name
执行存储过程:execute pro_name
输出参数:存储过程返回的是SQL语句查阅结果,在定义参数后,添加output,设置为一个输出参数(和C#中输出参数类似),
相当于多了一个返回值!
创建存储过程的基本形式:
create procedure pro_name_tableName
@param1 param1_type,
@param2 param2_type,
as
begin
--sql语句
end
go
2. 示例示例1:模拟转账:模拟转账
①示例背景:使用存储过程,模拟在一张存款表中实现用户与用户之间的转账
②准备工作1:在数据库中创建表szmBank
CREATE TABLE [dbo].[szmBank](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[Balance] [decimal](18, 0) NOT NULL
添加一些测试数据:
Id Balance
--------------- ----------------
1 1000
2 2000
3 3000
③准备工作2:封装C#代码中的SQL辅助类SqlHelper
注意封装的时候要有一个CommandType参数,决定是执行SQL语句还是存储过程,
CommandType是一个枚举类型,其中Text值为执行SQL语句,StoreProcedure为执行存储过程
具体封装细节这里就不详述了。