日期:2014-05-16  浏览次数:20463 次

sql server 2005 自定义函数

declare @x int
set @x =1
--自定义函数能不能做到让@x值改变且不用return;就像c/c++那样在一个函数内部改变一个全局变量的值一般
--似乎是不能的吧

------解决方案--------------------
是不能的,自定义函数必须要有return语句才行.
------解决方案--------------------

--三种自定义函数均有return关键字
  1)标量函数
          CREATE FUNCTION [所有者名.]函数名 ( [ { @参数名 [ AS ] 数据类型 [ = 默认值 ] } [ ,...n ] ] ) 
          RETURNS 返回值类型 [ WITH [ 选项,...n ] ]
          [ AS ]
          BEGIN 
               函数体 
               RETURN 标题表达式
          END 
     2)内嵌表值函数
          CREATE FUNCTION 所有者名.]函数名 ( [ { @参数名 [ AS ] 数据类型 [ = 默认值 ] } [ ,...n ] ] ) 
          RETURNS TABLE [ WITH [选项 ,...n ] ]
          [ AS ] 
               RETURN [ ( ] select语句 [ ) ] [ ; ] 
     3)多语句表值函数
          CREATE FUNCTION [所有者名.]函数名 ( [ { @参数名 [ AS ] 数据类型 [ = 默认值 ] } [ ,...n ] ] ) 
          RETURNS @返回值变量 TABLE < table_type_definition > [ WITH [ ,...n ] ] 
          [ AS ]
          BEGIN
               函数体
               RETURN 
          END

------解决方案--------------------
将该变量写入表中吧,在过程中利用update语句改变它的