4

我的 T-SQL 有问题,以查看该项目是否存在于表中,但我有错误消息

消息 178,级别 15,状态 1,行 2 在此上下文中不能使用具有返回值的 RETURN 语句。消息 178,级别 15,状态 1,第 4 行 在此上下文中不能使用具有返回值的 RETURN 语句。

IF EXISTS(SELECT COUNT(timesheetID)
FROM [TaskManagementSystem_DB].[dbo].[Timesheet_entry]
WHERE userID ='12'  AND CONVERT(date, startTimeStamp)=CONVERT(date, getdate())) 
    RETURN 1
else
RETURN 0

整个代码:

ALTER PROCEDURE [dbo].[CheckTimesheetIsEXISTS_forUser]  @UserID uniqueidentifier

AS 
BEGIN    
-- SET NOCOUNT ON added to prevent extra result sets from   
-- interfering with SELECT statements.  SET NOCOUNT ON;

IF EXISTS(SELECT COUNT(timesheetID) FROM 
 [TaskManagementSystem_DB].[dbo].[Timesheet_entry] 
 WHERE userID
  ='3fd971f7-e6e8-40fe-a90d-a7c9df8bf7b5'  
 AND CONVERT(date, startTimeStamp)=CONVERT(date, getdate()))



  RETURN 1 
else 
 RETURN 0 
END
4

3 回答 3

6

Return 在存储过程/用户定义的函数中工作。

简单的 tsql 只是一批命令。我猜你想写 SELECT 而不是 RETURN。

于 2012-09-07T14:26:41.657 回答
3

您只能调用return存储过程和函数。我假设这也不是。

于 2012-09-07T14:26:46.617 回答
2

尝试这个:

ALTER PROCEDURE [dbo].[CheckTimesheetIsEXISTS_forUser]  @UserID uniqueidentifier

AS 
BEGIN   

SELECT CASE WHEN COUNT(timesheetID) > 0 THEN 1 ELSE 0 END AS isExists
    FROM [TaskManagementSystem_DB].[dbo].[Timesheet_entry]
    WHERE userID = @UserID  AND CONVERT(date, startTimeStamp)=
     CONVERT(date, getdate())

END
于 2012-09-07T14:29:30.947 回答