在sql server中定义一个函数

时间:2015-03-04 06:30:39

标签: sql sql-server function

我想在SQL SERVER中声明一个函数,它是我的代码的开头,但是我得到了这个错误:'创建函数'必须是批次中唯一的陈述。

CREATE FUNCTION FindingMobileOrTelephone ( @Number nchar(11) )
RETURNS nvarchar
AS
BEGIN
    DECLARE @ItIsMobile nvarchar;
    DECLARE @ItIsTelephone nvarchar;
    RETURNS @ItIsMobile;
END;

有什么问题?!

2 个答案:

答案 0 :(得分:1)

试试这个

上次陈述应为RETURN而不是RETURNS

CREATE FUNCTION FindingMobileOrTelephone ( @Number nchar(11) )
RETURNS nvarchar
AS
BEGIN
    DECLARE @ItIsMobile nvarchar;
    DECLARE @ItIsTelephone nvarchar;
    RETURN (@ItIsMobile);
    ^

END 

答案 1 :(得分:1)

CREATE FUNCTION / TABLE应该是您正在执行的脚本中的第一个语句。

已经提到过一种选择。添加GO类将脚本拆分为单独的脚本。

但是,如果您在BEGIN END块内执行此操作,则无法使用此功能,因为您无法将此块与GO分开。 这里的一个选项是将CREATE语句包装到字符串文字中并使用EXEC or sp_executesql

-- your script
EXEC('CREATE FUNCTION ... END')