---------------------------------------------------存储过程--------------------------------------
--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。在调用系统内置的表值函数时,需要加::前缀。需要启用allowupdates服务器选项,才能将用户定义函数的所有者定义为system_function_schema。
----------------------------------------------------------------------------------------------------------------------