我有一个SQL Server 2005数据库。在一些过程中,我有一些表参数,这些参数以nvarchar
(用逗号分隔)传递给存储的proc,并在内部划分为单个值。我将其添加到SQL命令参数列表中,如下所示:
cmd.Parameters.Add("@Logins", SqlDbType.NVarchar).Value = "jim18,jenny1975,cosmo";
我必须将数据库迁移到SQL Server2008。我知道有表值参数,并且知道如何在存储过程中使用它们。但是我不知道如何在SQL命令中将其传递给参数列表。
有人知道该Parameters.Add
过程的正确语法吗?还是有另一种方式传递此参数?
签出以下解决方案:EF中具有表值参数的存储过程。 code.msdn.microsoft.com/Stored-Procedure-with-6c194514
—
卡尔·普罗思曼
在这种情况下,我通常会串联字符串并在服务器端将其拆分,如果我有多个列,甚至会传递一个xml。SQL处理XML时非常快。您可以尝试所有方法并检查处理时间,然后选择最佳方法。XML看起来像<Items> <Item value =“ sdadas” /> <Item value =“ sadsad” />...</ Items>。Sql Server上的过程也很简单。如果需要更多信息,可以始终使用此方法向<item>添加新属性。
—
Nițu Alexandru
@ NițuAlexandru,“ Sql处理xml时非常快。” 差远了。
—
nothrow