Sql 表类型参数的列名无效
我有一个表类型,它在存储过程中用于筛选出值Sql 表类型参数的列名无效,sql,sql-server-2008,stored-procedures,ssrs-2008,Sql,Sql Server 2008,Stored Procedures,Ssrs 2008,我有一个表类型,它在存储过程中用于筛选出值 CREATE TYPE PackageIdType AS TABLE ( PackageId VARCHAR(150) ); 我的存储过程如下所示: CREATE PROCEDURE [dbo].[spLocalGetValuesFromTable] @RundateStart datetime, @RundateEnd datetime, @CreationIds PackageIdT
CREATE TYPE PackageIdType AS TABLE
(
PackageId VARCHAR(150)
);
我的存储过程如下所示:
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)
但当我运行此获取错误时:
Msg 207,级别16,状态1,程序SPLOCALGETVALUES fromtable,第--[批处理起始行0]列名“@CreationIds”无效
这是一个表,所以正确的语法应该是
SELECT *
FROM MYTABLE
WHERE date Between @RundateStart And @RundateEnd
AND Ids in (SELECT PackageId FROM @CreationIds)
这假设表@CreationIds
中的每一行都是一个Id,可以映射到与MYTABLE
中的Id
相同的类型