| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 415 人关注过本帖
标题:SQL2000自定义函数问题?
只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏
已结贴  问题点数:10 回复次数:2 
SQL2000自定义函数问题?
以下是在网上找到的,但我的SQL2000在查询分析器上,是错误的,位置在红色字那里,我在网上找了很多,发现有点不同,有的写RETURNs,有的没S,我把S加上去了,就不报错了。难道是别人写少个个S?还是什么原因?

---******************************************************************
CREATE FUNCTION dbo.MyFunc
(
   @param1  INT,
   @param2  INT
)
RETURN INT
AS
BEGIN

   DECLARE @MaxValue INT

   IF(@param1 < @param2)
     SET @MaxValue = @param2
   ELSE
     SET @MaxValue = @param1

   RETURN  @MaxValue
 
END
 
--其中内嵌表值函数的示例如下:
CREATE FUNCTION dbo.GetProductListByTypeID
(
   @TypeID  INT
)
RETURN TABLE
AS
RETURN
(
  SELECT [Name], Quantity, CutPrice, Des
  FROM ProductInfo
  WHERE TypeID = @TypeID
)
 
--其中多语句表值函数的示例如下:
CREATE FUNCTION dbo.GetManagerList
RETURN @ManagerUsers TABLE
(
  userid  int primary key,
  username nvarchar(20) not null,
  age int
)
AS
BEGIN

  INSERT INTO @ManagerUsers
  SELECT userid, username, age
  FROM commonusers
  WHERE IsManager = 1

  INSERT INTO @ManagerUsers
  SELECT userid, username, age
  FROM sysUsers
 
  RETURN

END
 
在可使用标量表达式的位置可唤醒调用标量值函数,包括计算列和 CHECK 约束定义。当唤醒调用标量值函数时,至少应使用函数的两部分名称  [database_name.]owner_name.function_name ([argument_expr][,...])
示例:
IF(dbo.MyFunc(11, 22) = 22) PRINT 'OK!'

而在使用内嵌表值函数和多语句表值函数时则没有此限制。
 
注意:当将内嵌表值函数或多语句表值函数返回的Table做为FROM子句中的多个进行JOIN操作的Table使用时,需要为该Table指定别名,这是必需的。
--*******************************************************
搜索更多相关主题的帖子: 网上 
2015-07-10 12:40
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
百度告诉我了。。
用户定义函数中,用RETURNS 子句指定该函数返回值的数据类型
return用于返回具体的值/值变量
2015-07-10 14:13
hepingfly
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:195
专家分:657
注 册:2015-5-21
收藏
得分:10 
楼主的钻研精神,赞一个。但是,再继续看看 returns,和 return,哪一个返回的是值,哪一个是表。

星际花草
2015-07-14 23:14
快速回复:SQL2000自定义函数问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016027 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved