我已經寫了,如果日期差異已經大於或等於30返回值不能在此背景下
這裏,返回1的功能被使用的是我的代碼:
DECLARE @flag int
DECLARE @isactive bit
DECLARE @date Datetime
SET @flag = 0
SELECT @isactive = [m_isactive]
FROM dbo.rms_month_email
WHERE m_id = 3
SELECT @date = [m_createddate]
FROM dbo.rms_month_email
WHERE m_id = 3
IF (@isactive = 1 AND DATEDIFF(dd,@date,GETDATE()) = 30)
SET @flag = 1
RETURN @flag
但它產生了這個錯誤:
Msg 178, Level 15, State 1, Line 16
A RETURN statement with a return value cannot be used in this context.
這是什麼意思?
CREATE FUNCTION [dbo].[udf_isBonus]
(@m_id AS INT)
RETURNS INT
AS
BEGIN
-- Declare the return variable here
DECLARE @flag AS int
DECLARE @isactive AS bit
DECLARE @date AS Datetime
SET @flag = 0
SELECT @isactive = [m_isactive] FROM dbo.rms_month_email WHERE m_id = @m_id
SELECT @date = [m_createddate] FROM dbo.rms_month_email WHERE m_id = @m_id
IF (@isactive = 1 AND DATEDIFF(dd,@date,GETDATE()) = 30)
SET @flag = 1
RETURN @flag
END
GO
這是這個函數的整個代碼。
如何提供所有的功能與'CREATE FUNCTION名稱...' 。看起來你有不正確的語法。 –
這裏我沒有看到函數的定義。如果你想在批處理中測試一個函數的主體,使用'SELECT @ flag'而不是'RETURN'。 – Pred
我看到這個功能沒有錯誤。關閉投票 –