gpt4 book ai didi

sql-server - 无法在存储过程中将变量声明为 TVP 类型

转载 作者:行者123 更新时间:2023-12-04 06:30:00 26 4
gpt4 key购买 nike

我已经创建了一个 TVP,我试图在存储过程中使用它来输入到存储过程中。
问题是我无法用它创建我的 SP。它说

Msg 137, Level 16, State 1, Procedure uspGetUsersPresentCount, Line 14
Must declare the scalar variable "@usersList".

我的SP是
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'uspGetUsersPresentCount')
BEGIN
DROP Procedure [AMProcedures].[uspGetUsersPresentCount]
END

GO


SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROC [AMProcedures].[uspGetUsersPresentCount]
(
@usersList AS [AMProcedures].[udfUserListTVP] READONLY,
@startDate DATETIME,
@endDate DATETIME
)
AS
BEGIN
DECLARE @okStatus TINYINT = 4
SET NOCOUNT ON

SELECT MIMO.UserID, COUNT(MIMO.MoveInTime) FROM AMTables.tblUserMoveInMoveOutDetails MIMO
JOIN @usersList ON MIMO.UserID=@usersList.UserID
WHERE MIMO.Status=@okStatus AND
MIMO.MoveInTime BETWEEN @startDate AND @endDate
GROUP BY MIMO.UserID

SET NOCOUNT OFF

END
GO

谁能告诉我我做错了什么......我已经尝试了我所知道的,但似乎没有任何效果。

提前致谢。

最佳答案

为用户列表使用别名,或将其放在方括号中:

JOIN @usersList UL ON MIMO.UserID=UL.UserID

或者
JOIN @usersList ON MIMO.UserID=[@usersList].UserID

关于sql-server - 无法在存储过程中将变量声明为 TVP 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5524487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com