C# 从数组/列表/xml输入参数中选择的sql存储过程
我正在寻找以下问题的想法/解决方案 需要一个接受单个参数(数组、列表、集合、xml等)的存储过程。对于数组/list/collection/xml中的每个项,它将执行如下查询:C# 从数组/列表/xml输入参数中选择的sql存储过程,c#,sql-server-2005,sql-server-2008,C#,Sql Server 2005,Sql Server 2008,我正在寻找以下问题的想法/解决方案 需要一个接受单个参数(数组、列表、集合、xml等)的存储过程。对于数组/list/collection/xml中的每个项,它将执行如下查询: Select * from <some table> t Where t.Name = Parameter.Name and t.datetime = Parameter.datetime 从t中选择* 其中t.Name=Parameter.Name,t.datetime=Parameter.datetim
Select * from <some table> t
Where t.Name = Parameter.Name and t.datetime = Parameter.datetime
从t中选择*
其中t.Name=Parameter.Name,t.datetime=Parameter.datetime
所有结果都将作为单个结果集返回
例如,调用此过程时,将以下详细信息作为参数值传入:
Books 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
寻找各种想法,对其进行压力/计时
感谢重复(多次):您希望这些语句在存储过程中生成而不是在编译代码中生成,有什么原因吗?
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