---------------------------------------------------存储过程--------------------------------------
--1、存储过程定义中的参数可以为任意数据类型,包括用户定义的类型,同时过程还可以拥有输出参数,用于返回任何数据类型的结果。
--2、存储过程只能直接返回整型值,通常用于显示过程执行的状态。
--3、在存储过程定义中可以包含任何T-SQL 语句,可以向用户返回查询的结果集,允许递归(最大32 层),可以创建/ 引用临时表。
--4、存储过程的参数有默认值时,只要在调用存储过程时不指定该参数的值或将DEFAULT 关键字指定为该参数的值,即可使用默认值。
--5、存储过程不能用于表达式、计算列、DEFAULT 约束和CHECK 约束中。
--6、系统内置的存储过程有以下特点:其名称以sp_ 开头,存储在MASTER 数据库中。并且符合以上条件的用户定义存储过程可以在任何数据库下,不需要提供四部分名,即可被调用。
----------------------------------------------------------------------------------------------------------------------
---------------------------------------------------函数---------------------------------------------------
--1、函数定义中的参数不能是 timestamp 、cursor 、table 和用户定义的数据类型,且没有输出参数。
--2、函数可以直接返回除LOB 、cursor 、table 、timestamp 外任何数据类型的值。
--3、在函数定义中不能有修改函数外对象的T-SQL 语句,不能向用户返回任何结果集,不允许递归,不能创建/ 引用临时表。
--4、函数的参数有默认值时,在调用函数时必须将DEFAULT 关键字指定为该参数的值,才可以使用默认值。
--5、函数可以用于表达式、计算列、DEFAULT 约束和CHECK 约束中。
--6、系统内置的函数有以下特点:其名称以fn_ 开头,名称都是小写字母,存储在MASTER 数据库中,其所有者为system_function_schema 。在调用系统内置的表值函数时,需要加:: 前缀。需要启用allow updates 服务器选项,才能将用户定义函数的所有者定义为 system_function_schema 。
----------------------------------------------------------------------------------------------------------------------