给大家推荐个靠谱的公众号程序员探索之路,大家一起加油
今天和同事交流得知一个技术,叫做存储过程,第一印象,这么牛逼!!!
1.概念:
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调
用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
2.大体结构
举例说明:
CREATE
PROCEDURE
order_tot_amt //创建的存储过程名字
@o_id
int
,//参数
@p_tot
int
output //输出值
AS
------------具体执行sql开始----------------
SELECT
@p_tot =
sum
(Unitprice*Quantity)
FROM
orderdetails
WHERE
orderid=@o_id
---------------具体执行sql结束-------------------------
GO
另外例子:
附赠知识:
数据库递归查询
with test as(
SELECT * from hz_river_section a where id = '10001'
UNION All
SELECT a.* from hz_river_section a INNER JOIN test on a.parent_id = test.id
)
SELECT id, parent_id from test
例子:
CREATE PROCEDURE pro_river_section_tree
@id VARCHAR(100)
AS
BEGIN
with test as(
SELECT * from hz_river_section a where id = @id
UNION All
SELECT a.* from hz_river_section a INNER JOIN test on a.parent_id = test.id
)
SELECT id, parent_id from test
END
3.总结
我粗暴的理解 就是 你想执行一段sql(具有特殊功能) 但是不想写固定参数值,这时候就该用到存储过程.
例如第二个例子, 递归查询+动态参数