首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在存储进程中将变量声明为TVP类型

无法在存储进程中将变量声明为TVP类型
EN

Stack Overflow用户
提问于 2011-04-03 00:47:30
回答 1查看 649关注 0票数 2

我已经创建了一个TVP,并且我正尝试在一个存储的proc中使用它,以便将我的输入输入到存储的proc中。问题是我无法使用它创建我的SP。它说

代码语言:javascript
复制
Msg 137, Level 16, State 1, Procedure uspGetUsersPresentCount, Line 14
Must declare the scalar variable "@usersList".

我的SP是

代码语言:javascript
复制
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尝试了我所知道的,但似乎什么都不起作用。

在进阶时谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-03 00:50:39

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

代码语言:javascript
复制
JOIN @usersList UL ON MIMO.UserID=UL.UserID

代码语言:javascript
复制
JOIN @usersList ON MIMO.UserID=[@usersList].UserID
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5524487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档