首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

真怪,定义函数,返回一个表变量时,为何不能用begin end呢?请看代码:该怎么解决

2012-03-12 
真怪,定义函数,返回一个表变量时,为何不能用begin end呢?请看代码:ALTERFUNCTIONtmp2()RETURNSTABLEAS--be

真怪,定义函数,返回一个表变量时,为何不能用begin end呢?请看代码:
ALTER                     FUNCTION   tmp2   ()
RETURNS   TABLE        
AS
--begin
        RETURN   (SELECT   *   FROM   gzda)
--end

以上是一个最简单的函数,返回一个表变量,可是如果加上begin   和end就会报错。去了这两句就一切正常。这是为什么,难道如果返回的是表变量,就不能加上begin   和   end吗?真是不解。

[解决办法]
SQL Server 2000 支持三种用户定义函数:

标量函数


内嵌表值函数 --你用的是这种,不能带begin end


多语句表值函数


表值函数返回 table。
对于内嵌表值函数,没有函数主体;表是单个 SELECT 语句的结果集。
对于多语句表值函数,在 BEGIN...END 块中定义的函数主体包含 TRANSACT-SQL 语句,这些语句可生成行并将行插入将返回的表中。

热点排行