【问题标题】:sql stored procedure that selects from array/list/xml input parameter从数组/列表/xml输入参数中选择的sql存储过程
【发布时间】:2015-06-04 18:18:45
【问题描述】:

我正在寻找以下问题的想法/解决方案。

需要一个接受单个参数(数组、列表、集合、xml 等)的存储过程。对于 array/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

寻找各种想法来执行一些压力/时机。

谢谢

【问题讨论】:

标签: c# sql-server-2005 sql-server-2008


【解决方案1】:
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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 2013-10-08
    • 2013-02-03
    • 1970-01-01
    相关资源
    最近更新 更多