Sql 不是可识别的内置函数名
创建了一个函数Sql 不是可识别的内置函数名,sql,sql-server,sql-server-2008,sql-server-2008-r2,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,P
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
当我尝试EXEXEXUTE此
选择在大写字母上拆分('SaiBharath')
时,它会给出一个错误“'Split_On_大写字母'不是可识别的内置函数名”。请有人解释一下这一点在前缀中添加[dbo],然后按相同方式执行:
SELECT [dbo].[Split_On_Upper_Case] ('SaiBharath')
为了确保这一点,首先使用
use
子句设置创建函数的数据库,然后在函数调用前加上dbo
USE <DatabaseName>
SELECT dbo.Split_On_Upper_Case('camelCase')
使用
在大写字母('camelCase')上选择dbo.Split
另外,一个好的做法是。要在sql中执行函数,应该使用前缀
dbo
SELECT [dbo].[Split_On_Upper_Case] ('SaiBharath')
@曼苏尔-拜托?好的答案不仅有代码,还有一些解释。公平地说,微软似乎也很少对此做出解释。这个答案足以解决我在过去半个小时内试图执行函数时遇到的挫折。谢谢你的回答,但我想知道是否有办法避免使用dbo?请看我的问题: