ALTER FUNCTION tmp2 ()
RETURNS TABLE
AS
--begin
RETURN (SELECT * FROM gzda)
--end以上是一个最简单的函数,返回一个表变量,可是如果加上begin 和end就会报错。去了这两句就一切正常。这是为什么,难道如果返回的是表变量,就不能加上begin 和 end吗?真是不解。
RETURNS TABLE
AS
--begin
RETURN (SELECT * FROM gzda)
--end以上是一个最简单的函数,返回一个表变量,可是如果加上begin 和end就会报错。去了这两句就一切正常。这是为什么,难道如果返回的是表变量,就不能加上begin 和 end吗?真是不解。
内嵌表值函数 --你用的是这种,不能带begin end
多语句表值函数 表值函数返回 table。
对于内嵌表值函数,没有函数主体;表是单个 SELECT 语句的结果集。
对于多语句表值函数,在 BEGIN...END 块中定义的函数主体包含 TRANSACT-SQL 语句,这些语句可生成行并将行插入将返回的表中。
RETURNS @regzda TABLE (结果1 nchar(6),结果2 nchar(6),结果3 nchar(6))
AS
BEGIN insert into @regzda
select 'abc','ggg','fff'
RETURN
END