小编dik*_*kob的帖子

错误:创建函数必须是批处理中的唯一语句

我试图首先检查该函数是否存在,然后创建它,如果不存在。

我从函数中收到此错误:

IF NOT EXISTS (SELECT * FROM sys.objects 
    WHERE object_id = OBJECT_ID(N'[dbo].[GetRelativeExpiry]') AND type in (N'U'))
    BEGIN

    SET ANSI_NULLS ON
    SET QUOTED_IDENTIFIER ON

    CREATE FUNCTION [dbo].[GetRelativeExpiry]
    (
        @Date DATE,
        @N INT
    )
    RETURNS DATE
    AS
    BEGIN
        -- Declare the return variable here
        DECLARE @Expiry as DATE;

        IF @N > 0
        BEGIN
            SELECT @Expiry = MAX(E2.Expiry) 
            FROM (SELECT TOP(@N) Expiry
                  FROM ExpiryDates E1
                  WHERE E1.Expiry >= @date
                  ORDER BY E1.Expiry) AS E2
        END
        ELSE
        BEGIN
            SELECT @Expiry = MIN(E2.Expiry) 
            FROM …
Run Code Online (Sandbox Code Playgroud)

sql-server

2
推荐指数
1
解决办法
6079
查看次数

标签 统计

sql-server ×1