Tsql 以表值作为参数执行存储过程

Tsql 以表值作为参数执行存储过程,tsql,Tsql,我创建自己的表类型 CREATE TYPE [dbo].[ObjectsList] AS TABLE( [Id] [int] NOT NULL, PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (IGNORE_DUP_KEY = OFF) ) GO 当我想把这个类型作为参数传递时,比如 CREATE PROCEDURE [dbo].[GetData](@DataIds ObjectsList READONLY) 我该怎么交呢 执行GetData 你可以

我创建自己的表类型

CREATE TYPE [dbo].[ObjectsList] AS TABLE(
[Id] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
   [Id] ASC
)WITH (IGNORE_DUP_KEY = OFF)
)
GO
当我想把这个类型作为参数传递时,比如

CREATE PROCEDURE [dbo].[GetData](@DataIds ObjectsList READONLY)
我该怎么交呢 执行GetData

你可以找到一个例子

DECLARE @data ObjectList
INSERT @data (Id) VALUES (1)
EXEC GetData @data

要使用SELECT语句填充@data,请执行以下操作:

DECLARE @data ObjectList

INSERT @data (Id)
SELECT
  Id
FROM
  <someDB>.<someSchema>.<someTable>
  JOIN ... etc 
WHERE
  ... etc

EXEC GetData @data
DECLARE@data ObjectList
插入@data(Id)
挑选
身份证件
从…起
..
参加等
哪里
... 等
EXEC GetData@data