存储过程和函数类似于Java中的方法。

⒈存储过程

  一组预先编译好的sql语句的集合,理解成批处理语句。

  好处:

    ①提高代码的重用性

    ②简化操作

    ③减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率

  1.创建语法 

 if OBJECT_ID(N'procName',N'P') is not null
drop proc procName
create proc /*procedure*/ procName
@paramName paramType /*= '默认值' output*/
as
sql
go

  参数带output则为输出参数

  2.调用语法。

 exec 存储过程名(实参列表);

  3.删除存储过程

 drop proc /*procedure*/ 存储过程名;

  4.查看存储过程的信息

 exec sp_helptext  '存储过程名';

⒉函数

  函数和存储过程意义和好处都是一样的。它们的唯一区别就是:

    存储过程可以没有返回值,也可以有多个返回值,适合做批量插入数据、批量更新等。

    函数必须有返回值,而且只能有1个,适合做处理数据后返回1个结果。

  1.创建语法

    ①标量函数--即返回的结果只是一个标量,通俗的讲返回的结果就是一种类型的一个值。

    创建:

 create function funName(@paramName paramType)
returns returnType
as
begin
sql
end
go

    调用:

select dbo.函数名(参数列表); 

    ②内联表值函数--即返回的是一张表数据。

    创建:

 create function funName(@paramName paramType)
returns table
as
return (select * from Table)
go

    调用:

 select * from funName();

    ③多语句表值函数--即通过多条语句来创建Table类型的数据,由我们自行指定具体的Table类型的结构

    创建:

 create function funName()
returns @result table(
id int,
username varchar(20)
)
as
begin
insert into @result select id,username from Study.dbo.users
return
end
go

    调用:

 select * from funName();

  2.删除函数

 drop function 函数名;

  3.查看函数

 exec sp_helptext '函数名';
 select definition from sys.all_sql_modules sm

 inner join sys.all_objects ao on sm.object_id = ao.object_id

 where name ='functionName'and type ='FN'

SqlServer存储过程及函数的更多相关文章

  1. sqlserver 存储过程 自定义函数 游标???

    create proc cur_fun( @cur cursor --输入参数 ) as begin declare @mytpye tb1_type ) fetch next from @cur i ...

  2. SqlServer判断数据库、表、字段、存储过程、函数是否存在

    原文:SqlServer判断数据库.表.字段.存储过程.函数是否存在 判断数据库是否存在 if exists (select * from sys.databases where name = '数据 ...

  3. sqlserver批量导出存储过程、函数、视图

    select text from syscomments s1 join sysobjects s2 on s1.id=s2.id  where xtype = 'V' xtype V   视图 P  ...

  4. SqlServer查看对象(表、存储过程、函数)在哪些地方被引用或引用哪些地方

    对象(如表)-->右键-->查看依赖关系 依赖于[]的对象:列出哪些存储过程.函数引用了该表 []依赖的对象:列出该存储过程.函数依赖了哪些表.函数.存储过程

  5. 我的MYSQL学习心得(十) 自定义存储过程和函数

    我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心 ...

  6. 解剖SQLSERVER 第十五篇 SQLSERVER存储过程的源文本存放在哪里?(译)

    解剖SQLSERVER 第十五篇  SQLSERVER存储过程的源文本存放在哪里?(译) http://improve.dk/where-does-sql-server-store-the-sourc ...

  7. SqlServer存储过程学习笔记(增删改查)

    * IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值. CREATE PROCEDURE [dbo].[PR_NewsAffiche_AddNewsEntity] ( ...

  8. SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数

    原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之 ...

  9. ylb:SQLServer常用系统函数-字符串函数、配置函数、系统统计函数

    原文:ylb:SQLServer常用系统函数-字符串函数.配置函数.系统统计函数 ylbtech-SQL Server:SQL Server-SQLServer常用系统函数 -- ========== ...

随机推荐

  1. Eclipse中快捷键Ctrl + Alt + 向上箭头 或者 Ctrl + Alt + 向下箭头与Windows冲突

    原文地址:https://blog.csdn.net/buaaroid/article/details/50804608 clipse中按ctrl + alt + 向上箭头没有任何反应,按ctrl + ...

  2. springboot配置SSL自签名证书

    1.证书生成 每一个JDK或者JRE里都有一个工具,叫做:keytool,安装了jdk或jre之后,配置好JAVA环境之后,就可以直接在控制台使用该命令生成自签名证书: 在控制台输入: keytool ...

  3. zoj 3601

    链接 [https://vjudge.net/contest/293343#problem/B] 题意 就是n男m女.然后给出他们喜欢那些人 再给出q次询问 每次参加party的人 让你找出某个人满足 ...

  4. 定时任务调度工作(学习记录 二)timer定时函数的用法

    schedule的四种用法: 1.schedule(task,time) 参数: task----所安排的任务 time----执行任务的时间 作用: 在时间等于或超过time的时候执行且仅执行一次t ...

  5. bind:tap="onLike" 中不能添加参数 及 dataset 传值

    <view bind:tap="onLike({{id}})"></view> //Component "pages/book-detail/bo ...

  6. Spring 事务传播特性

    Spring 事务属性一共有四种:传播行为.隔离级别.只读和事务超时 a)   传播行为定义了被调用方法的事务边界. 传播行为 意义 PROPERGATION_MANDATORY 表示方法必须运行在一 ...

  7. 1.nginx_add_after_body

    语法: add_before_body uri;默认值: —配置段: http, server, location发起一个子请求,请求给定的uri,并且将内容追加到主题响应的内容之前. 语法: add ...

  8. codeforces305A

    Strange Addition CodeForces - 305A Unfortunately, Vasya can only sum pairs of integers (a, b), such ...

  9. linux查看主板型号、CPU、显卡、硬盘等信息

    系统 uname -a # 查看内核/操作系统/CPU信息 head -n 1 /etc/issue # 查看操作系统版本 cat /proc/cpuinfo # 查看CPU信息 hostname # ...

  10. Spring Boot学习总结四

    利用阿里的druid来管理数据库连接池,在此数据上针对多数据源的情况,做下讲解.首先加上该包 <dependency> <groupId>com.alibaba</gro ...