十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
create proc test ------创建存储过程 test
公司主营业务:成都网站设计、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出月湖免费做网站回馈大家。
@a int =‘’-----------创建变数 有的存储过程不需要变数,这个看个人所需要
as ---------------执行以下语句
select * from table where a=@a -------------------後面写自己需要的语句
go
--------exec test ‘1’----------执行存储过程
1、 创建语法
create proc | procedure pro_name
[{@参数数据类型} [=默认值] [output],
{@参数数据类型} [=默认值] [output],
....
]
as
SQL_statements
2、 创建不带参数存储过程
--创建存储过程
if (exists (select * from sys.objects where name = 'proc_get_student'))
drop proc proc_get_student
go
create proc proc_get_student
as
select * from student;
--调用、执行存储过程
exec proc_get_student;
3、 修改存储过程
--修改存储过程
alter proc proc_get_student
as
select * from student;
4、 带参存储过程
--带参存储过程
if (object_id('proc_find_stu', 'P') is not null)
drop proc proc_find_stu
go
create proc proc_find_stu(@startId int, @endId int)
as
select * from student where id between @startId and @endId
go
exec proc_find_stu 2, 4;
5、 带通配符参数存储过程
--带通配符参数存储过程
if (object_id('proc_findStudentByName', 'P') is not null)
drop proc proc_findStudentByName
go
create proc proc_findStudentByName(@name varchar(20) = '%j%', @nextName varchar(20) = '%')
as
select * from student where name like @name and name like @nextName;
go
exec proc_findStudentByName;exec proc_findStudentByName '%o%', 't%';
扩展资料:
SQL存储过程优点:
1、重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
2、减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
3、安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
参考资料来源:百度百科—存储过程
朋友,你无需考虑这些,这只是语言设计者在语法上的设定而已,作为使用者的我们只需掌握set的用法即可,如果你一定要询问为何语言设计的那些专家们用set,那你不妨参考一下set在英语中的解释,set即是设置的意思,这也符合使用它时的语境。
sqlserver中用set赋值,而在oracle中则可以看到“select sal into sal_p from emp”这的语句,你注意到了吗?同样是赋值,两种语言分别采用了set和select,这或许可以证明你的猜想,set与select的渊源可见一斑。
祝你成功
sqlserver存储过程的基本操作:
一、创建存储过程
1、语法格式:
create proc | procedure pro_name
[{@参数数据类型} [=默认值] [output],
{@参数数据类型} [=默认值] [output],
....
]
as
sql_statements以上是最基本语法,举个简单的例子:
create proc p_test
as
select retu = 1存储过程返回一个结果集:1
2、执行存储过程
execute procedure_name '' --存储过程如果有参数,后面加参数格式为:@参数名=value,也可直接为参数值value例子调用结果:
3、删除存储过程
drop procedure procedure_name --在存储过程中能调用另外一个存储过程,而不能删除另外一个存储过程
q 定义存储过程的语法
CREATE PROC[EDURE] 存储过程名
@参数1 数据类型 = 默认值,
…… ,
@参数n 数据类型 OUTPUT
AS
SQL语句
GO
q 和C语言的函数一样,参数可选
q 参数分为输入参数、输出参数
q 输入参数允许有默认值
创建不带参数的存储过程
CREATE PROCEDURE proc_stu /*proc_stu为存储过程的名称*/
AS
DECLARE @writtenAvg float,@labAvg float /*笔试平均分和机试平均分变量 */
SELECT @writtenAvg=AVG(writtenExam),
@labAvg=AVG(labExam) FROM stuMarks
print '笔试平均分:'+convert(varchar(5),@writtenAvg)
print '机试平均分:'+convert(varchar(5),@labAvg)
IF (@writtenAvg70 AND @labAvg70)
print '本班考试成绩:优秀' /*显示考试成绩的等级 */
ELSE
print '本班考试成绩:较差'
print '--------------------------------------------------'
print ' 参加本次考试没有通过的学员:'
SELECT stuName,stuInfo.stuNo,writtenExam,labExam /*显示未通过的学员 */
FROM stuInfo INNER JOIN stuMarks ON
stuInfo.stuNo=stuMarks.stuNo
WHERE writtenExam60 OR labExam60
GO
调用存储过程
q EXECUTE(执行)语句用来调用存储过程
q 调用的语法
EXEC 过程名 [参数]
创建带参数的存储过程
q 存储过程的参数分两种:
q 输入参数
q 输出参数
q 输入参数:
用于向存储过程传入值,类似C语言的按值传递;
q 输出参数:
用于在调用存储过程后,
返回结果,类似C语言的
按引用传递;
第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程”
第二步:在create PROCEDURE 后 输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组装的存储过程语句了
第三步: 编译存储过程,在工具栏上按下执行按钮,如果没有错误,就编写成功了。
第四步:调用:在sqlserver的语句查询框中,输入exec 存储过程名 参数,执行就可以了。
基本语法格式如下:中括号带的是可选项
create proc | procedure pro_name
[{@参数数据类型} [=默认值] [output],
{@参数数据类型} [=默认值] [output],
....
]
as
begin
SQL_statements
--业务处理
end