帮助,运行“SQL Server联机帮助”一示例出错!

Dong 2005-10-09 10:04:18
CREATE FUNCTION ISOweek (@DATE datetime)
RETURNS int
AS
BEGIN
DECLARE @ISOweek int
SET @ISOweek= DATEPART(wk,@DATE)+1
-DATEPART(wk,CAST(DATEPART(yy,@DATE) as CHAR(4))+'0104')
IF (@ISOweek=0)
SET @ISOweek=dbo.ISOweek(CAST(DATEPART(yy,@DATE)-1
AS CHAR(4))+'12'+ CAST(24+DATEPART(DAY,@DATE) AS CHAR(2)))+1
IF ((DATEPART(mm,@DATE)=12) AND
((DATEPART(dd,@DATE)-DATEPART(dw,@DATE))>= 28))
SET @ISOweek=1
RETURN(@ISOweek)
END
------------------这是create function的帮助示例

declare @d datetime
set @d = getdate()
select ISOweek(@d) as WE
-------------------------------这是我的运行方式


服务器: 消息 195,级别 15,状态 10,行 3
'ISOweek' 不是可以识别的 函数名。
---------------------------------这是错误信息



本人已经查找过了,不知道为什么!!我以前返回的都是table,一直没有问题!
但现在反而返回int出问题了,请帮助……
...全文
161 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwl 2005-10-10
  • 打赏
  • 举报
回复
一楼正解

select [函数的所有者].ISOweek(@d) as WE --不一定是dbo,是函数的所有者

如:
CREATE FUNCTION [user].ISOweek (@DATE datetime)
RETURNS int

那么:

select [user].ISOweek(@d) as WE
wgsasd311 2005-10-09
  • 打赏
  • 举报
回复
一楼正解
点点星灯 2005-10-09
  • 打赏
  • 举报
回复

declare @d datetime
set @d = getdate()
select dbo.ISOweek(@d) as WE --必须加上dbo. 这是调用函数必须的。

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧