如何从SQL Server表中验证来自PowerShell的大型数据集

问题描述:

我有几百行数据,每个数据大约100个字节,并且需要在SQL Server中针对相当大的(数百万行)表进行验证的字段值。 SQL上的查询本身非常快,但是从脚本运行单行查询并不慢,可能是因为连接设置和拆卸。我无法将任何存储的特效添加到服务器。有没有办法如何将数据集/表传递给脚本查询并返回结果,而不是逐行迭代数据集?当然,PowerShell代码示例将会受到欢迎;)如何从SQL Server表中验证来自PowerShell的大型数据集

由于SQL Server无法接受表作为查询中的输入参数,因此不会有通过powershell(或任何其他我知道的方法)的方法。你使用的任何方法在某些时候都会将行/特定值传递给SQL。

你可以做的是从你的数组中创建一个表,并将该临时表与你的大表进行比较以进行验证。但是,确定这是否更快将需要一些测试。

+0

实际上,SQL 2008添加了表值参数,您可以将表传递给查询,但是它们的使用需要创建服务器端对象 - 用户定义的表类型。如果你不能创建任何服务器端的对象,那么我同意临时表和解析值的数组是次佳选择。 – 2011-02-11 12:52:26