什么是存储过程?
存储过程是“一段写好的sql脚本”。
注意它不是select查询语句,不是用来查询的。
它一般是用来计算的。
相当于做前端的时候的js语言的 函数 function ()。
举例说明:
为了更好的理解,我用sql语言和javascript语言做相同的一个事情。写了一个简单的函数。对比展示两种语言同样的效果。
“计算aaa和bbb,相加的结果和相乘的结果,把计算结果插入到table_a表中。”
步骤1、编写“函数”
sql代码,存储过程的“创建”语句
CREATE proc pro_test1 @aaa int,
@bbb int
as
begin
insert into table_a(add_value, multiplication_value, creation_time)
select @aaa + @bbb,
@aaa * @bbb,
getdate()
end
go
它相当于js代码的
javascript代码
// 计算器函数,计算aaa和bbb的加法和乘法
function jisuanqi(aaa, bbb) {
console.log("计算aaa和bbb的加法")
console.log(aaa + bbb)
console.log("计算aaa和bbb的乘法")
console.log(aaa * bbb)
}
步骤2、调用“函数”
sql代码,调用存储过程的代码
begin
declare @aaa int = 2
declare @bbb int = 3
declare @result int
exec
@result = pro_test1
@aaa,
@bbb
select @result as result
end
相当于js代码的
var a = 2
var b = 3
jisuanqi(a, b)
步骤3、显示结果
存储过程的结果写在了table_a里面,我们用select语句去查询。
js代码的结果是在打印出来的