В Интернете есть несколько статей о передаче параметра Table-Value в SSIS, но мне интересно, что они все очень старые и неправильные, как слишком сложные, потому что они хотят, чтобы были выполнены компоненты скрипта или много других вещей.
Так что вопросы.
- Как передать параметр Table-Value в ADO.NET Source.
- Как передать параметр Table-Value в OLE DB Source.
Как сделать это наиболее эффективным и быстрым способом
Давайте предположим, что параметр табличного значения определен как тип
CREATE TYPE [dbo].[IDs_TVP] AS TABLE(
[ID] [INT] NOT NULL
)
и процедура может быть вызвана
DECLARE @ID dbo.IDs_TVP
INSERT INTO @Clients
(
Text
)
VALUES
('1'),
('1'),
('3')
EXEC dbo.GetClients @Clients = @Clients
и определенная процедура
CREATE PROCEDURE [dbo].[GetClients]
@Clients dbo.IDs_TVP READONLY
AS
SELECT * FROM @Clients