SQLSERVER T-SQL 自定义函数 不是可以识别的函数名 消息 208,级别 16

iwemeada 2008-05-13 10:54:51
SQLSERVER T-SQL 自定义函数 不是可以识别的函数名

我的自定义函数头

函数在在查询分析器里都编译通了,就是执行
select * from is_constrain_exist('10,175')
的时候报错
----------------------------------------
服务器: 消息 208,级别 16,状态 3,行 1
对象名 'is_constrain_exist' 无效。
----------------------------------------------------

create function is_constrain_exist(@food_dot varchar(32))
RETURNS varchar(16)
as
。。。



这个网上找来的split方法 也是自定义函数 粘进去一编译都直接就好用,为什么我自己写的都不行呢?
create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
--date :2005-4-20
--Author :Domino
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'\'
insert @temp values(@SourceSql)
return
end


...全文
1776 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwemeada 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 happyflystone 的回复:]
select a434222.is_constrain_exist('10,175')
[/Quote]

好了 好了! 哈哈 谢谢你!

不过现在死循环了好像! 至少是运行了 呵呵 散分! 我就这些分 全给了 别嫌少
-狙击手- 2008-05-13
  • 打赏
  • 举报
回复
前面加你的这个函数的所有者
-狙击手- 2008-05-13
  • 打赏
  • 举报
回复
select a434222.is_constrain_exist('10,175')
iwemeada 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 happyflystone 的回复:]
引用 4 楼 iwemeada 的回复:
引用 2 楼 happyflystone 的回复:
SQL codeselect dbo.is_constrain_exist('10,175')



还是不行
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'dbo.is_constrain_exist' 无效。


首先你的函数创建成功了吗?
[/Quote]

命令已成功完成。
iwemeada 2008-05-13
  • 打赏
  • 举报
回复
写错了个字
是a434222.is_constrain_exist
iwemeada 2008-05-13
  • 打赏
  • 举报
回复
happyflystone 你好!

我的SQLSERVER服务是在虚拟主机上的 似乎没有dbo权限

create function is_constrain_exist(@food_dot varchar(32))
RETURNS varchar(16)
is_constrain_exist函数建立之后 在查询分析器左侧的树菜单里
名称自动加上了我在虚拟主机上的数据库名 a434222 就是a434222.f_split

是不是和这个有关系啊? 谢谢!

-狙击手- 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 iwemeada 的回复:]
引用 2 楼 happyflystone 的回复:
SQL codeselect dbo.is_constrain_exist('10,175')



还是不行
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'dbo.is_constrain_exist' 无效。
[/Quote]

首先你的函数创建成功了吗?
-狙击手- 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 changjiangzhibin 的回复:]
很明显,报的是函数名不合法,换个简单的试试
[/Quote]



不是不合法,是调用不对



create function is_constrain_exist(@food_dot varchar(32)) 
RETURNS varchar(16)
as
begin
return 'asdf'
end


go


select dbo.is_constrain_exist('asdf')
/*
----------------
asdf

(所影响的行数为 1 行)
*/

select * from dbo.is_constrain_exist('asdf')

/*
服务器: 消息 208,级别 16,状态 3,行 11
对象名 'dbo.is_constrain_exist' 无效。

*/

drop function is_constrain_exist



iwemeada 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 happyflystone 的回复:]
SQL codeselect dbo.is_constrain_exist('10,175')
[/Quote]


还是不行
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'dbo.is_constrain_exist' 无效。
changjiangzhibin 2008-05-13
  • 打赏
  • 举报
回复
很明显,报的是函数名不合法,换个简单的试试
-狙击手- 2008-05-13
  • 打赏
  • 举报
回复
select dbo.is_constrain_exist('10,175') 
iwemeada 2008-05-13
  • 打赏
  • 举报
回复
在网上找来这个 也解决不了?难道是我没看懂?~~ 求大家帮助!急死了都


自定义存储过程调自定义函数提示"不是可以识别的函数名"问题2007-07-26 16:44  今天在做项目的时候,需要在一个自己写的sql server存储过程中调用自己写的函数,创建这个存储过程时报错,提示"不是可以识别的函数名",经过研究,调试,发现要想调用自定义的函数,必须该函数所属的用户名,如dbo,写成dbo.你的自定义函数名,这样就可以了。

22,294

社区成员

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

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