当function返回一个table的时候
有in-line和multi
之间有什么区别
怎么区分呢?

解决方案 »

  1.   

    CREATE FUNCTION dbo.fn_line
    (
      @id INT
    )
      RETURNS TABLE
    AS
      RETURN(
        SELECT * FROM tb_name 
        WHERE ID=@id
      )
    GOCREATE FUNCTION dbo.fn_multi
    (
      @id INT

      RETURNS @t TABLE(id int,name varchar(10))
    AS
    BEGIN
      IF ISNULL(@id,0)=0
         SET @id=100  INSERT @t 
        SELECT * FROM tb_name
         WHERE ID=@id  RETURN
    END
      

  2.   

    参照
    http://msdn.microsoft.com/zh-cn/library/ms186755(SQL.90).aspx
      

  3.   

    创建的写法不同,
    内嵌表值函数
    直接用select 返回表,类似一个可用多条语句的视图多语句表值函数
    定义返回表时已定义了表结构与表变量,在函数语句中操作此表变量,返回时将此表变量的结果返回.虽然写法不同,使用的方法相同.效果也相同.