例如.我可以写这样的代码:
public void InactiveCustomers(IEnumerable<Guid> customerIDs)
{
//...
myAdoCommand.CommandText =
"UPDATE Customer SET Active = 0 WHERE CustomerID in (@CustomerIDs)";
myAdoCommand.Parameters["@CustomerIDs"].Value = customerIDs;
//...
}
Run Code Online (Sandbox Code Playgroud)
我知道的唯一方法是加入我的IEnumerable,然后使用字符串连接来构建我的SQL字符串.
Eri*_*ard 17
通常,执行此操作的方法是传入逗号分隔的值列表,并在存储过程中解析列表并将其插入临时表,然后可以将其用于连接.从Sql Server 2005开始,这是处理需要保存数组的参数的标准做法.
这是一篇关于处理这个问题的各种方法的好文章:
但是对于Sql Server 2008,我们最终将表变量传递给过程,首先将表定义为自定义类型.
本文中对此(以及更多2008功能)有一个很好的描述:
SQL Server 2008中新的T-SQL可编程性功能简介