не удалось объявить переменную как тип TVP в Stored Proc - PullRequest
2 голосов
/ 02 апреля 2011

Я создал 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

Может кто-нибудь сказать мне, что я не так делаю ... Я попробовал то, что знал, но ничего не работает.*

Спасибо заранее.

1 Ответ

3 голосов
/ 02 апреля 2011

Либо используйте псевдоним для списка пользователей, либо поставьте его в квадратных скобках:

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

или

JOIN @usersList ON MIMO.UserID=[@usersList].UserID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...