SQL入门经典(八)之存储过程
2016-06-25 11:43
246 查看
存储过程(stored procedure)有时候称为sproc,它是真正的脚本-或者更准确的说,他是批处理(batch)-它存储于数据库中,而不是淡出的文件中。无论如何,这个比较并不是很确定。存储过程有输出参数,输入参数已及返回值等。而脚本不会有这些内容。
存储过程基本语法:CREATE PROCEDURE|PROC <sproc name>
[<parameter name> <data type> [VARYING][<default value>] [OUTPUT]],
[<parameter name> <data type> [VARYING][<default value>] [OUTPUT]]
[........,n]
[WITH PECOMPILE|ENCRYPTION|EXECUTE AS{ CALLER |SELF|OWNER|<'user name '>}]
[ FOR REPLICATION]
AS
<code>|EXTERNAL NAME<assembly name>.<assembly class>.<method>
试一试最简单基本存储过程:
View Code
使用存储过程的时机:(优点)
1.通常更佳的性能。
2.可以作为安全隔离层(控制数据访问和跟新方式)
3.可以重用代码
4.划分代码
5.根据在运行时建立的动态而可以灵活执行
缺点:
移植性差,不能跨平台移植
在一些情况下可能因为错误的执行计划而被锁定(实际影响性能).
未完待续。
存储过程基本语法:CREATE PROCEDURE|PROC <sproc name>
[<parameter name> <data type> [VARYING][<default value>] [OUTPUT]],
[<parameter name> <data type> [VARYING][<default value>] [OUTPUT]]
[........,n]
[WITH PECOMPILE|ENCRYPTION|EXECUTE AS{ CALLER |SELF|OWNER|<'user name '>}]
[ FOR REPLICATION]
AS
<code>|EXTERNAL NAME<assembly name>.<assembly class>.<method>
试一试最简单基本存储过程:
USE AdventureWorks GO --切换到AdventureWorks数据库 CREATE PROCEDURE sp_Employee AS SELECT * FROM HumanResources.Employee GO--提前处理语句。防止下面EXEC sp_Employee抛出错误 exec sp_Employee
CREATE proc sp_jx @size int , @count int output AS declare @temp_s int ; declare @temp_c int ; if @size >=1 begin select @temp_s=@size-1; exec sp_jx @temp_s,@temp_c output select @count= @size*@temp_c; end else select @count=1 return GO declare @count int exec sp_jx 5,@count output select @count exec sp_jx 32,@count output select @count
View Code
使用存储过程的时机:(优点)
1.通常更佳的性能。
2.可以作为安全隔离层(控制数据访问和跟新方式)
3.可以重用代码
4.划分代码
5.根据在运行时建立的动态而可以灵活执行
缺点:
移植性差,不能跨平台移植
在一些情况下可能因为错误的执行计划而被锁定(实际影响性能).
未完待续。
相关文章推荐
- mysql中char,varchar与text类型的区别和选用
- 从数据库中读出数据并输出
- sql join 用法
- mssql 获取表结构信息
- Mysql5.6.17 zip版本安装
- sql练习题2(50题)
- mysql数据库备份
- redis命令大全
- sqlserver 2008 服务器拒绝连接;拒绝访问指定的数据库
- Scala操作MongoDB
- MySQL的多存储引擎架构
- SQL基础知识--多行查询结果拼接
- MySQL安装(以程序的方式启动)zip版
- SQL Server存储机制
- 用Redis的set指令实现锁
- Oracle 数据库开启关闭 及 端口监听相关命令
- Mysql 数据库的数据大小查看:
- Linux下启动相关oracle服务与监听的命令
- sql表,库的创建和删除
- ORACLE数据库忘记SYS和SYSTEM密码,SYSTEM被锁定怎么办?