第五讲事务、索引、视图、存储过程、函数.ppt

第五讲事务、索引、视图、存储过程、函数.ppt

第五讲事务、索引、视图、存储过程、函数

1.3 表值函数 CREATE FUNCTION [schema_name.]function_name ([{@parameter_name parameter_data_type [=default_value]}[,...n]]) RETURNS @table_var_name TABLE(table_definition) AS BEGIN Function_body RETURN END RETRUNS后面是TABLE类型,TABLE类型必须指定结构 多语句表值函数 RETURNS后面不用再写返回的值或表达式 1.3 表值函数 无参的多语句表值函数,其功能是返回所有账户的一卡通存款 create function getDeposit() returns @depositTable table ( accountName varchar(20), balance float ) as begin --为TABLE类型的变量赋值 insert into @depositTable select account_name , balance from account , all_purpose_card where account.ACCOUNT_ID = all_purpose_card.ACCOUNT_ID return --无需再写值或表达式,直接返回变量@depositTable end go 函数执行完毕时返回table类型的变量@salarytable 为table类型的变量赋值 1.3 表值函数 --使用表值函数getDeposit select * from getDeposit () 调用表值函数getDeposit()时,可以将其作为普通表使用 显示效果 1.3 表值函数 CREATE FUNCTION [schema_name.]function_name ([{@parameter_name parameter_data_type [=default_value]}[,...n]]) RETURNS TABLE AS BEGIN Function_body RETURN [select_stmt] END RETURNS关键字后面不需要定义TABLE型变量 内联表值函数 RETURNS语句后面直接使用SELECT语句查询数据行 1.3 表值函数 内联表值函数 USE Bank GO create function getAccount (@account_id int) returns table as return ( select * from Account where account_id =@account_id ) GO 不需要定义表结构 直接通过一条SELECT语句返回 2.存储过程 存储过程(Procedure)是SQL语句和流程控制语句的预编译集合 存储过程可以包含逻辑控制语句和数据操作语句,也可以接收参数、输出参数并返回结果集 存储过程在声明时不能定义返回类型(与C#方法不同),返回值通过传出参数实现 存储过程分为两类 系统存储过程 用户自定义的存储过程 存储过程创建时即在服务器上进行编译,所以执行时比匿名的T-SQL代码块速度快,效率高。 2.1 存储过程的优点 允许模块化程序设计 执行速度更快 减少网络流量 可以作为安全机制使用 存储过程B 存储过程A 存储过程C 数据库引擎 分析和优化 调 用 调用 提交 任何存储过程都可以单独授权 内存中保存存储过程副本 2.2 常用的系统存储过程 所有系统存储过程均以“sp_”开头 系统存储过程中的扩展存储过程以“xp_”开头 存储过程存放于master数据库中,系统管理员拥有这些存储过程的使用权限 可以在任何数据库中运行系统存储过程,其执行的结果反映在当前的数据库中 2.2 常用的系统存储过程 系统存储过程名称 说明 sp_databases 列出服务器上所有的数据库 sp_helpdb 报告有关指定数据库或所有数据库的信息 sp_renamedb 重命名数据库 sp_tables 返回当前环境下任何能够在 FROM 子句中出现的对象(不包括同义词对象) sp_columns 查看某个表的列信息 sp_help 查看某个表的所有信息 sp_helpconstraint 查看某个表的约束 sp_helpindex 查看某个表的索引 sp_stored_procedure 列出当前环境中所有的存储过程 sp_password 添加或修改登录账户的密码 sp_helptext 显示默认值、未加密的存储过程、用

文档评论(0)

1亿VIP精品文档

相关文档