报错:不是可以识别的内置函数名称

本文介绍在SQL中创建及调用自定义函数时常见的问题,包括如何正确引用自定义函数,区分标量函数与多语句表值函数的使用场景,并解决了因函数类型不匹配导致的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

!!创建函数的时候不需要加dbo.,但在访问的时候,标量函数要加.dbo的


自己写完的函数,调用后报错提示:不是可以识别的内置函数名称

例:SELECT @JS_ID = A.ID,
        @JSHM = A.JSHM,
        @JS_MC = A.JS_MC,
        @XY_DM = A.XY_DM,
        @RS = A.RS
    FROM(select ID,JSHM,JS_MC,XY_DM,RS
     FROM F_Get_ZYBJ_JXB_JSXX(@ID_ZYBJ_KKKC_JXB,@ID_1,@XND_Q,@XND_Z,@XNXQ)
     where JSLX_DM = @JSLX_DM
     and DXBZ >= @BJSL)AS A
    WHERE A.ID NOT IN(select *  from aa(@i,@num,@PK_JS_JG_Array))   //aa为自己写的多表值函数

若改成  WHERE A.ID NOT IN(aa(@i,@num,@PK_JS_JG_Array))  则提示 "不是可以识别的内置函数名称",

改成WHERE A.ID NOT IN(dbo.aa(@i,@num,@PK_JS_JG_Array))  后成功执行,但此时逻辑错误:因为aa为多语句表值函数,返回的是表,而不是值,不能直接应用

转载于:https://www.cnblogs.com/oY211/archive/2011/06/07/2074237.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值