В интернет има множество статии за предаване на параметъра 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