不是公认的内置函数名称

时间:2016-12-19 08:59:44

标签: sql sql-server sql-server-2008 sql-server-2008-r2

创建了一个功能

CREATE FUNCTION Split_On_Upper_Case(@Temp VARCHAR(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
DECLARE @KeepValues AS VARCHAR(50)
SET @KeepValues='%[^ ][A-Z]%'
WHILE PATINDEX(@KeepValues COLLATE Latin1_General_Bin,@Temp)>0
SET @Temp=STUFF(@Temp,PATINDEX(@KeepValues COLLATE Latin1_General_Bin,@Temp)+1,0,' ')
RETURN @Temp
END

当iam尝试执行此操作时SELECT Split_On_Upper_Case('SaiBharath')它会出现错误“'Split_On_Upper_Case'不是公认的内置函数名称。”。有人可以解释一下

3 个答案:

答案 0 :(得分:23)

在前缀中添加[dbo],然后执行相同的操作:

SELECT [dbo].[Split_On_Upper_Case] ('SaiBharath')

答案 1 :(得分:12)

要在sql中执行函数,应使用前缀dbo

SELECT [dbo].[Split_On_Upper_Case] ('SaiBharath')

答案 2 :(得分:8)

为了确保首先使用use子句设置您创建函数的数据库,然后使用dbo为函数调用添加前缀。

USE <DatabaseName>

SELECT dbo.Split_On_Upper_Case('camelCase')

另外,一个好的做法是prefixing each function or database object for that matter, with its schema name