我已经创建了一个TVP,并且我正尝试在一个存储的proc中使用它,以便将我的输入输入到存储的proc中。问题是我无法使用它创建我的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有人能告诉我我做错了什么吗?...I尝试了我所知道的,但似乎什么都不起作用。
在进阶时谢谢。
发布于 2011-04-03 00:50:39
可以为用户列表使用别名,也可以将其放在方括号中:
JOIN @usersList UL ON MIMO.UserID=UL.UserID或
JOIN @usersList ON MIMO.UserID=[@usersList].UserIDhttps://stackoverflow.com/questions/5524487
复制相似问题