【发布时间】:2016-06-27 01:07:25
【问题描述】:
我有一个 SQL Server 2005 数据库。在一些过程中,我将表参数作为nvarchar(用逗号分隔)传递给存储过程,并在内部分为单个值。我将它添加到 SQL 命令参数列表中,如下所示:
cmd.Parameters.Add("@Logins", SqlDbType.NVarchar).Value = "jim18,jenny1975,cosmo";
我必须将数据库迁移到SQL Server 2008。我知道有表值参数,并且我知道如何在存储过程中使用它们。但我不知道如何将一个传递给 SQL 命令中的参数列表。
有人知道Parameters.Add 过程的正确语法吗?或者还有其他方法可以传递这个参数吗?
【问题讨论】:
-
查看此解决方案:EF 中具有表值参数的存储过程。 code.msdn.microsoft.com/Stored-Procedure-with-6c194514
-
在这种情况下,我通常连接字符串并在服务器端拆分它们,或者如果我有多个列,甚至传递一个 xml。 Sql 在处理 xml 时非常快。您可以尝试所有方法并检查处理时间,然后选择最佳方法。 XML 看起来像
。 Sql Server 上的过程也很简单。使用此方法,如果您需要更多信息,您可以随时向- ...
- 添加新属性。
-
@NițuAlexandru,“处理 xml 时,Sql 非常快。”。甚至没有关闭。
标签: c# sql-server stored-procedures sqlcommand table-valued-parameters