SQL存储过程
来源:互联网 发布:火星情报局收视率数据 编辑:程序博客网 时间:2024/06/04 18:12
这两天要去份工作,招聘单位要求SQL存储过程,触发器要熟练,自已多年没有用过了,现在总结一下存储过程
--------------------------------------------
存储过程
是存储在服务器上的一组预编译的Transact-SQL语句。
系统存储过程是系统提供的存储过程,可以作为命令进行各种操作。另外,系统存储过程可以做为样本存储过程,指导用户如何编写有效的存储过程。
系统存储过程在master数据库中,其前缀为sp_
本地存储过程:用户自已在数据库中存储过程。
临时存储过程:也是用户自已在数据库中存储过程,前面加一个符号“#”(局部临时存储过程),加两个符号“##”
(全局临时存储过程)
远程存储过程:不在本机上的存储过程。
扩展存储过程:在SQL环境之外执行动态链接库DLL称为扩展存储过程,其前缀是xp_。
-----------------------------------------------------------------------
存储过程名称存储在当前数据库的系统表sysobjects中,将存储过程的文本存储在当前数据库的系统表syscomments中,存储过程的参数信息存储在系统表syscolumns中.
常用的系统存储过程:
sp_help:显示参数清单和其数据类型
sp_helptext:显示存储过程的定义文本
sp_depends:列出存储过程依据的对象或依据存储过程的对象
sp_stored_procedures:返回当前数据库中的存储过程的清单。
---------------------------------------------------------------------
创建存储过程
1、简单存储过程
create procedure 存储过程名称
as
sql语句块
go
2、输入参数存储过程(定义参数时,最好赋默认值,默认值为NULL或常量)
create procedure 存储过程名称
@参数1 类型=值|NULL,
@参数2 类型=值|NULL
as
sql语句块
go
3、输出参数存储过程
create procedure 存储过程名称
@参数1 类型,
@参数2 类型,
@参数3 类型 OUTPUT
as
sql语句块
go
--------------------------------------------------
执行存储过程
1、execute 存储过程名称
2、execute 存储过程名称
@参数1=值1,
@参数2=值2
go
或
execute 存储过程名称
值1,值2
go
3、declare @参数3 类型
execute 存储过程名称 值1,值2,@参数3 OUTPUT
删除存储过程
drop 存储过程名称
----------------------------------------------------------------------
下面分别列出不同情况的例子
1、不带参数储过程
例:CREATE PROC kk
AS
SELECT name,id,sex
FROM students
WHERE calss='初三'
GO
EXECUTE kk
GO
2、带输入参数存储过程
例:CREATE PROC qurey
@a1 char(4)=NULL
AS
SELECT name,id,sex
FROM students
WHERE calss=@a1
GO
EXECUTE PROC qurey
@a1='初三'
GO
或者
EXECUTE PROC qurey '初三'
GO
3、带输出参数存储过程
例:CREATE PROC sum
@a1 smallint,
@a2 smallint,
@a3 smallint OUTPUT
AS
@a3=@a1+@a2
GO
DECLARE @a4 smallint
EXECUTE sum 8,12,@a4 OUTPUT
SET 'This is:', @a4
综合示例:
USE mcedu
IF EXEISTS(SELECT name FROM sysobject WHERE name='kk' AND type='p')
DROP PROCEDURE kk
GO
CREATE PROCEDURE kk
@a1 smallint,
@a2 smallint,
@a3 smallint OUTPUT
AS
SET @a3=@a1*@a2
GO
DECLARE @a4 smallint
EXECUTE kk 2,3,@a4 OUTPUT
SET 'ss',@a4
GO
--------------------------------------------
存储过程
是存储在服务器上的一组预编译的Transact-SQL语句。
系统存储过程是系统提供的存储过程,可以作为命令进行各种操作。另外,系统存储过程可以做为样本存储过程,指导用户如何编写有效的存储过程。
系统存储过程在master数据库中,其前缀为sp_
本地存储过程:用户自已在数据库中存储过程。
临时存储过程:也是用户自已在数据库中存储过程,前面加一个符号“#”(局部临时存储过程),加两个符号“##”
(全局临时存储过程)
远程存储过程:不在本机上的存储过程。
扩展存储过程:在SQL环境之外执行动态链接库DLL称为扩展存储过程,其前缀是xp_。
-----------------------------------------------------------------------
存储过程名称存储在当前数据库的系统表sysobjects中,将存储过程的文本存储在当前数据库的系统表syscomments中,存储过程的参数信息存储在系统表syscolumns中.
常用的系统存储过程:
sp_help:显示参数清单和其数据类型
sp_helptext:显示存储过程的定义文本
sp_depends:列出存储过程依据的对象或依据存储过程的对象
sp_stored_procedures:返回当前数据库中的存储过程的清单。
---------------------------------------------------------------------
创建存储过程
1、简单存储过程
create procedure 存储过程名称
as
sql语句块
go
2、输入参数存储过程(定义参数时,最好赋默认值,默认值为NULL或常量)
create procedure 存储过程名称
@参数1 类型=值|NULL,
@参数2 类型=值|NULL
as
sql语句块
go
3、输出参数存储过程
create procedure 存储过程名称
@参数1 类型,
@参数2 类型,
@参数3 类型 OUTPUT
as
sql语句块
go
--------------------------------------------------
执行存储过程
1、execute 存储过程名称
2、execute 存储过程名称
@参数1=值1,
@参数2=值2
go
或
execute 存储过程名称
值1,值2
go
3、declare @参数3 类型
execute 存储过程名称 值1,值2,@参数3 OUTPUT
删除存储过程
drop 存储过程名称
----------------------------------------------------------------------
下面分别列出不同情况的例子
1、不带参数储过程
例:CREATE PROC kk
AS
SELECT name,id,sex
FROM students
WHERE calss='初三'
GO
EXECUTE kk
GO
2、带输入参数存储过程
例:CREATE PROC qurey
@a1 char(4)=NULL
AS
SELECT name,id,sex
FROM students
WHERE calss=@a1
GO
EXECUTE PROC qurey
@a1='初三'
GO
或者
EXECUTE PROC qurey '初三'
GO
3、带输出参数存储过程
例:CREATE PROC sum
@a1 smallint,
@a2 smallint,
@a3 smallint OUTPUT
AS
@a3=@a1+@a2
GO
DECLARE @a4 smallint
EXECUTE sum 8,12,@a4 OUTPUT
SET 'This is:', @a4
综合示例:
USE mcedu
IF EXEISTS(SELECT name FROM sysobject WHERE name='kk' AND type='p')
DROP PROCEDURE kk
GO
CREATE PROCEDURE kk
@a1 smallint,
@a2 smallint,
@a3 smallint OUTPUT
AS
SET @a3=@a1*@a2
GO
DECLARE @a4 smallint
EXECUTE kk 2,3,@a4 OUTPUT
SET 'ss',@a4
GO
- SQL SERVER存储过程
- SQL存储过程
- SQL存储过程
- SQL 存储过程&算法
- sql 存储过程分页
- SQL存储过程初探
- SQL存储过程
- SQL 存储过程
- 关于sql存储过程
- SQL存储过程循环
- sql 存储过程分页
- sql分页存储过程
- SQL存储过程学习
- sql分页存储过程
- sql,存储过程简介
- pl/sql 存储过程
- sql存储过程
- sql 存储过程分页
- 请不要做浮躁的人
- Windows Rootkit 技术分析
- 内联虚函数详解
- div和table页面布局的区别
- BOM
- SQL存储过程
- 浅析Windows XP系统的两种不同登录方式
- 2008脚本大赛PowerShell Sudden Death Event 5解题及分析
- 2008-02-27 日志:博彦科技C#周末班开课提示
- SQL触发器
- 杂七杂八
- SQL检索数据
- HTML总结
- 在equinox环境开发web应用的"利器" -- registerResources()方法 详解