Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将表传递给存储过程的SQL查询_Sql_Sql Server 2008_Parameters - Fatal编程技术网

将表传递给存储过程的SQL查询

将表传递给存储过程的SQL查询,sql,sql-server-2008,parameters,Sql,Sql Server 2008,Parameters,我有一个DateTime值列表,对于每个值,我需要从数据库中获取一些内容。我想通过一个查询来实现这一点。我知道可以将表(列表)传递给存储过程,但我不确定如何编写查询本身 假设我有下表: CREATE TABLE Shows( ShowId [int] NOT NULL, StartTime DateTime NOT NULL, EndTime DateTime NOT NULL ) 还有一组日期 DECLARE @myDateArray MyCustomDateA

我有一个DateTime值列表,对于每个值,我需要从数据库中获取一些内容。我想通过一个查询来实现这一点。我知道可以将表(列表)传递给存储过程,但我不确定如何编写查询本身

假设我有下表:

CREATE TABLE Shows(
    ShowId [int] NOT NULL, 
    StartTime DateTime NOT NULL, 
    EndTime DateTime NOT NULL 
)
还有一组日期

DECLARE @myDateArray MyCustomDateArrayType
现在,如果我获取单个项目,我将编写如下查询:

SELECT * FROM Shows
WHERE StartTime > @ArrayItem and @ArrayItem < EndTime
从显示中选择*
其中StartTime>@ArrayItem和@ArrayItem
其中@ArrayItem是来自@myDateArray的项

但是,我如何制定查询来获取所有数组项的信息呢

这应该可以做到:

SELECT s.* 
FROM Shows s
    JOIN @MyDateArray t ON s.StartTime > t.TableVarDateField 
        AND t.TableVarDateField < s.EndTime
选择s.*
从节目中
在s.StartTime>t.TableVarDateField上加入@MyDateArray t
和t.TableVarDateField
我想你的意思是
开始时间你在使用什么数据库?MySQL?神谕MS SQL Server?还有别的吗?答案将取决于您使用的是什么,因为每个RDBMS都有不同的功能。对于所有数组项,您的意思是什么?因为一行很可能只适合查询部分数组,而不是全部数组。您如何知道他在使用SQL Server?@Oded-我可能错了,但这听起来很像OP在谈论SQL Server 2008中的表值参数支持——我不知道mySQL或Oracle是否以他们所描述的方式支持表值参数支持(但我绝对不是这方面的专家)。是的,我使用的是SQL Server。不管怎样,阿达瑟德夫建议的答案非常有效!我不知道这是SQL Server相关的语法。。。谢谢大家!