【发布时间】:2016-02-22 09:23:15
【问题描述】:
我在存储用户信息的数据库中有用户表。我想创建存储过程,我将在其中将 UserIDs 作为列表传递。我想使用这个列表从用户表中获取数据。
我正在使用以下查询将类型创建为表:
CREATE TYPE dbo.MyUserIDs AS TABLE (UserID int)
现在我在存储过程中使用这种类型:
ALTER PROCEDURE [dbo].[Test_in_Query]
@MyUserids MyUserIDs READONLY
AS
BEGIN
SET NOCOUNT ON;
SELECT * From Tbl_UserMast where UserID in (select UserID from @MyUserids)
END
当我执行此代码时,出现以下错误:
操作数类型冲突:int 与 MyUserIDs 不兼容
我正在关注此链接作为参考: Reference link
【问题讨论】:
-
好问题。您能否提供一个示例说明您如何调用该过程,以便我们拥有minimal reproducible example?
-
使用表值参数。
-
对不起,“使用表值参数”是什么意思?
标签: sql-server sql-server-2008 stored-procedures