我的T-SQL有问题,看看桌子上的项目是否有EXISTS但是我有错误信息
Msg 178,Level 15,State 1,Line 2带返回的RETURN语句 值不能在此上下文中使用。 Msg 178,Level 15,State 1,Line 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
答案 0 :(得分:6)
返回在存储过程/用户定义函数内部工作。
简单的tsql只是一批命令。我想你想写SELECT而不是RETURN。
答案 1 :(得分:3)
您只能在存储过程和函数中调用return
。我假设这不是。
答案 2 :(得分: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