T-SQL语言为我们提供了更加灵活的方式操作数据,那就是函数,函数总的分为三大类:标量函数:(传入一个参数,再传出一个参数)聚合函数(传入多个参数,传出一个参数),表值函数(传入一个结果集对象,让我们能够通过对表的操作对其进行处理),表值函数在此进行细分的话可以分为两类:内嵌表值函数和多语句表值函数。内嵌表值函数模样如下:
1 CREATE FUNCTION my_fun()RETURNS TABLE 2 AS 3 RETURN 4 SELECT * FROM Table_1
写函数容易出错的细节在于RETURNS与RETURN的区别
以上就是内嵌表值函数,下面再看看多语句表值函数:
课本上指出内嵌表值函数与多语句表值函数的区别为:
内嵌表值函数没有函数主题(BEGIN-END)返回的是单个SELECT的结果集;而多语句表值函数在BEGIN-END之间是由多个T-SQL语句序列构成,这些语句可以生成记录行并将行插入到表中,然后返回表。 ----《SQL Server教程第三版》
下面是一个多语句表值函数的示例:
CREATE FUNCTION myfun_2()RETURNS @my_list ( Column_1 char(10), Column_2 char(10) ) AS BEGIN INSERT @my_list --操作 END
函数在传值的时候可以加一些对值的修饰,包括只读,默认值等等,与其他语言很是相似