Ⅰ 关于存储过程的疑问!!求帮助!!
首先,存储过程在执行的时候不需要预编译,就速度上来说占优势
另外,存储过程相当于开发中的封装,内部的查询逻辑对于程序来说是不需要知道的,这样在你的数据结构或者查询逻辑有改动的时候,不会影响到程序这点是非常好的
再者,在很多查询中我们需要连接很多表或者变量或者其它的时候,我们用存储过程可以将临时表,变量等锁定在存储过程中,它们的生命周期仅存在于存储过程的执行期内不会影响到其它的应用
其它好处有很多,不一一列举了。。
前台调用的话要看开发工具了,工具不同执行方式不同
在sql的查询分析器中可以直接调用
例如:exec procName 参数,参数(注意字符串或者时间都要加'',例如:'1988-12-14','参数1')
如果有不明白的地方可以给我留言
Ⅱ 存储过程中怎样计算表的行数
Create Proc linecount--新建存储过程
@count int output--输出参数
as
select @count=count(*) from notice--统计赋值
--调用
declare @a--声明变量@a
execute linecount @a output--调用存储过程
print @a--输出变量@a
够详细吧
Ⅲ 请问什么是存储过程,存储过程作用是什么,什么情况下才用存储过程如何用sql调用存储过程
sql语句执行的时候要先编译,然后执行。存储过程(Stored Procere)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程.
这是一个基础教程你看看http://www.aspxuexi.com/asp/sp/2007-11-20/2990.htm
Ⅳ 用存储过程实现表行加减的运算
--我给你举个差不多的列子你就明白了
--我把我的表设字段少点
create table tb (col1 int, col2 int,col3 int,col4 int)
insert tb(col1,col2,col3 ) select
1,2,3 union all select 3,4,7 union select 5,6,9
--我的计算规则就是col4的值=该行的col1+col3-col2+上一行的col4的列值
--注意:你没有给出第一行的col4计算规则 我假设第一行计算的时候那个上一行的col4值为0
go
alter proc sp_Z
as
begin
DECLARE @COL4 INT
declare cur cursor for
select col1,col2,col3 from tb
open cur
declare @col1 int,@col2 int,@col3 int
fetch next from cUr into @col1,@col2,@col3
while @@FETCH_STATUS = 0
begin
--计算出该行的@col4值 赋值给col4
set @COL4=@col1+@col3-@col2+ISNULL(@col4,0)--这个isnull(@col4,0)里面的@col4就是上一行的col4值
update tb
set col4=@col4
where col1 = @col1 and col2=@col2 and col3 = @col3
fetch next from cur into @col1,@col2,@col3
end
close cur
deallocate cur
select * from tb
end
go
--执行存储过程
exec sp_Z
/*
col1 col2 col3 col4
----------- ----------- ----------- -----------
1 2 3 2
3 4 7 8
5 6 9 16
*/
Ⅳ SQL 存储过程中 怎么将string转换为int进行计算
第一个方法就是使用执行sql语句,参数sql就是sql语句;
第二个方法就是调用存储过程,参数sql就是存储过程的名称,paras就是存储过程的参数。
Ⅵ 存储过程中的比较运算符是什么
用 if(@id is null) 或者 if isnull(@id,0)=0
Ⅶ 怎么在存储过程中 使用加减运算
???????????你自己不已经写了么set @new_sum=@in_sum+@have_sum
你觉得这一句只是把IN_SUM的值给了NEW_SUM?那你的那个+HAVE_SUM你以为是干什么用的
Ⅷ sqlserver 存储过程 怎么计算两个数的和。
既然计算记过需要保存下来以后使用,那就不要用储存过程,使用函数就可以获取到返回值了。
Ⅸ 存储函数和存储过程如何将运算结果返回给外界
存储函数可以通过return语句返回函数值,存储过程通过out inout 参数将结果带出
存储函数和存储过程如何将运算结果返回给外界?通过return语句返回函数值,和通过out inout 参数将结果带出。
Ⅹ SQL 中存储过程怎么使用
一、简单的储存过程:
1、创建一个存储过程
create procere GetUsers()
begin
select * from user;
end;12345
2、调用存储过程
call GetUsers();12
3、删除存储过程
drop procere if exists GetUsers;
二、带参数的存储过程
1、MySql 支持 IN (传递给存储过程) , OUT (从存储过程传出) 和 INOUT (对存储过程传入和传出) 类型的参数 , 存储过程的代码位于 BEGIN 和 END 语句内 , 它们是一系列 SQL 语句 , 用来检索值 , 然后保存到相应的变量 (通过指定INTO关键字) ;
2、下面的存储过程接受三个参数 , 分别用于获取用户表的最小 , 平均 , 最大分数 , 每个参数必须具有指定的类型 , 这里使用十进制值(decimal(8,2)) , 关键字 OUT 指出相应的参数用来从存储过程传出
create procere GetScores(
out minScore decimal(8,2),
out avgScore decimal(8,2),
out maxScore decimal(8,2)
)
begin
select min(score) into minScore from user;
select avg(score) into avgScore from user;
select max(score) into maxScore from user;
end;1234567891011
3、调用此存储过程 , 必须指定3个变量名(所有 MySql 变量都必须以@开始) , 如下所示 :
call GetScores(@minScore, @avgScore, @maxScore);12
4、该调用并没有任何输出 , 只是把调用的结果赋给了调用时传入的变量@minScore, @avgScore, @maxScore, 然后即可调用显示该变量的值 :
select @minScore, @avgScore, @maxScore;
5、使用 IN 参数 , 输入一个用户 id , 返回该用户的名字 :
create procere GetNameByID(
in userID int,
out userName varchar(200)
)
begin
select name from user
where id = userID
into userName;
end;12345678910
6、调用存储过程 :
call GetNameByID(1, @userName);
select @userName;123