хранимая процедура sql, которая выбирает из входного параметра массив / список / xml - PullRequest
0 голосов
/ 21 декабря 2009

Я ищу идею / решение следующей проблемы.

Требуется хранимая процедура, которая принимает один параметр (массив, список, коллекция, xml и т. Д.). Для каждого элемента в массиве / list / collection / xml он выполнит запрос, подобный следующему:

Select * from <some table> t
Where t.Name = Parameter.Name and t.datetime = Parameter.datetime

Все результаты будут возвращены как один набор результатов.

В качестве примера эта процедура будет вызываться со следующими деталями, передаваемыми в качестве значения параметра:

Книги 09.09.2009 11: 23: 23

Книги 09.09.2009 11:23:23 Авторы 04: 22: 04

Книги 09.09.2009 11:23:23 Авторы 04:22:04 Каталог 9: 45: 11

Ищите множество идей для того, чтобы испытать на себе стресс / время.

Спасибо

1 Ответ

1 голос
/ 04 июня 2015
CREATE TYPE id_list AS TABLE (
    id int NOT NULL PRIMARY KEY
);
GO

CREATE PROCEDURE [dbo].[tvp_test] (
      @param1           INT
    , @customer_list    id_list READONLY
)
AS
BEGIN
    SELECT @param1 AS param1;

    -- join, filter, do whatever you want with this table 
    -- (other than modify it)
    SELECT *
    FROM @customer_list;
END;
GO

DECLARE @customer_list id_list;

INSERT INTO @customer_list (
    id
)
VALUES (1), (2), (3), (4), (5), (6), (7);

EXECUTE [dbo].[tvp_test]
      @param1 = 5
    , @customer_list = @customer_list
;
GO

DROP PROCEDURE dbo.tvp_test;
DROP TYPE id_list;
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...