【发布时间】:2009-07-24 21:46:50
【问题描述】:
有任何机会将数组从 .NET C# 传递给 SQL 函数。
提前致谢。
真诚的。
你能告诉我怎么做吗?
【问题讨论】:
标签: c# arrays sql-server-2008
有任何机会将数组从 .NET C# 传递给 SQL 函数。
提前致谢。
真诚的。
你能告诉我怎么做吗?
【问题讨论】:
标签: c# arrays sql-server-2008
对于 SQL Server 2008,是的,使用 table-valued parameters。使用 SQL Server 2005,您必须将数据包装在 XML 中,并在 T-SQL 函数中使用 XQuery 对其进行分解。
注意:您只能将表值参数传递给存储的过程,而不是函数。
来自链接:
// Configure the SqlCommand and table-valued parameter.
SqlCommand insertCommand = new SqlCommand(
"usp_InsertCategories", connection);
insertCommand.CommandType = CommandType.StoredProcedure;
SqlParameter tvpParam =
insertCommand.Parameters.AddWithValue(
"@tvpNewCategories", dataReader);
tvpParam.SqlDbType = SqlDbType.Structured;
【讨论】:
Erland Sommarskog 有两篇关于如何在 SQL Server 2000 和 2005 中执行此操作的优秀文章:
http://www.sommarskog.se/arrays-in-sql-2005.html
http://www.sommarskog.se/arrays-in-sql-2000.html
但是使用 SQL Server 2008 和表值参数,它会更好更容易,所以如果你在 2008 年,一定要使用 TVP!
马克
【讨论】: