2017-10-24 1 views
0

저장 프로 시저에서 값을 필터링하는 데 사용되는 테이블 유형이 있습니다. 나는이 점점 오류 실행할 때테이블 유형 매개 변수의 열 이름이 잘못되었습니다.

CREATE PROCEDURE [dbo].[spLocalGetValuesFromTable]  
    @RundateStart datetime, 
    @RundateEnd datetime, 
    @CreationIds PackageIdType READONLY 
AS 
    SELECT * 
    FROM MYTABLE 
    WHERE date BETWEEN @RundateStart AND @RundateEnd 
     AND Ids IN (@CreationIds) 

을 :

CREATE TYPE PackageIdType AS TABLE 
( 
    PackageId VARCHAR(150) 
); 

내 저장 프로 시저이있다

Msg 207, Level 16, State 1, Procedure spLocalGetValuesFromTable, Line --[Batch Start Line 0]
Invalid column name '@CreationIds'

답변

3

그것은 테이블, 그래서를 올바른 구문이 될 것

SELECT * 
FROM MYTABLE 
WHERE date Between @RundateStart And @RundateEnd 
    AND Ids in (SELECT PackageId FROM @CreationIds) 

이것은 @CreationIds 테이블의 각 행에 Ids과 동일한 유형으로 매핑 할 수있는 ID는 MYTABLE입니다.

관련 문제