自定义函数出错,请兄弟们帮我看看
CREATE FUNCTION cus_f_IsUsed
(
@lngID int=0,
@v int=0
)
RETURNS bit
AS
BEGIN
declare
@sql nvarchar(1000),
@IsUsed bit,
@Fields1 nvarchar(30),
@ID int
--字段名1变量(ID)
set @Fields1=case when @v=1800 then N'lngProvinceID'--省份
when @v=2000 then N'lngCityID'--城市
when @v=2200 then N'lngSepcialtyID'--专业
when @v=2400 then N'lngNationID'--民族
when @v=2600 then N'lngDiplomaID'--学历
when @v=2800 then N'lngWorkTypeID'--工种
when @v=3000 then N'lngProcessID'--工序
when @v=3200 then N'lngWorkPositionID'--工位
when @v=3400 then N'lngEmployeeTypeID'--员工类别
when @v=3600 then N'lngEmployeeQualityID'--员工性质
when @v=3800 then N'lngDutyID'--职务
when @v=4000 then N'lngTitleID'--职称
when @v=4200 then N'lngCusTypeID'--客户类别
when @v=4400 then N'lngCusGrpID'--客户组别
when @v=4600 then N'lngCusPropertyID'--企业性质
when @v=4800 then N'lngCusTradeID'--行业
end
set @IsUsed=0
--employee
if @v<>5000
begin
set @sql=N'select @F='+@Fields1+N' from employee where ' +@Fields1+N'=@ID'
exec sp_executesql @sql,
N'@F int out,@ID int',@ID out,@lngID
if @ID is not null
begin
set @IsUsed=1
goto aa
end
end
aa:
return @IsUsed
____________________________________________________________________
在查询分析器里执行
'select dbo.cus_f_IsUsed (3,1800)',
提示'服务器: 消息 557,级别 16,状态 2,过程 cus_f_IsUsed,行 44
只有函数和扩展存储过程才能从函数内部执行。'
什么意思?