我想知道如何将数组传递给存储过程,而存储过程又会从c#.net中返回一个数组?如何传递数组并将其返回给存储过程?
0
A
回答
4
根据场景的不同,这里有不同的选项。我在下面的很多示例中使用了SQL Server,但其中大部分可以在系统之间进行广泛转换。对于一个相对较小的数组(理想情况下为vector),可以构造一个分隔字符串(制表符分隔,逗号分隔,无论什么),并将其传递到数据库并解析 - 通常是手动的(DBMS通常缺少“split”例程) ,但获得预先编写的“拆分”实现(例如,作为SQL Server中的UDF)非常容易。典型用法:
SELECT st.*
FROM dbo.SplitUDF(@myarg) #udf
INNER JOIN SOME_TABLE st ON st.ID = #udf.Value
xml是另一种选择,尤其对于复杂数据; SQL Server 2005及以上版本具有内置的xml解析功能,但不应该假设为一般。
Table-valued parameters是另一种选择,但这仅仅是SQL Server 2008--它可能是您正在寻找的东西。
另一种选择,尤其是对大数据,是经由SQL数据泵入服务器分别(批量插入,SQLBulkCopy
“BCP”,SSIS无论)和处理数据,一旦它的存在。
要获取数组/表格数据,标准SELECT
应该是您的默认选项,尽管您当然也可以构建xml或分隔字符数据。后者可以通过一个奇怪的SQL来完成:
DECLARE @foo varchar(max)
SET @foo = ''
SELECT @foo = @foo + st.SomeColumn + '|' -- pipe-delimited, note trailing |
FROM SOME_TABLE st
相关问题
- 1. 将数组传递给存储过程
- 2. 如何将数组数组传递给Oracle存储过程?
- 3. 如何将数组参数传递给存储过程?
- 4. 如何将值的“数组”传递给我的存储过程?
- 5. 如何将2D数组传递给存储过程?
- 6. 如何将数组传递给SQL存储过程
- 7. 将参数传递给存储过程
- 8. 如何获取参数的值并将其传递给存储过程?
- 9. 如何将参数传递给返回多个记录的存储过程
- 10. Android:返回上一个活动并将其传递给数组
- 11. 如何将数组传递给函数并返回值
- 12. 将数组传递到存储过程
- 13. 如何将全局数组传递给web worker并将其返回?
- 14. 将scope_identity传递给存储过程
- 15. 将列表传递给存储过程
- 16. 将VARBINARY传递给存储过程
- 17. 将表传递给存储过程
- 18. 如何将参数传递给线程并获取返回值?
- 19. 将结构数组传递给Oracle存储过程(CFMX)
- 20. 将数组传递给SQL Server存储过程
- 21. 将存储过程结果传递给数组
- 22. 将字符串数组传递给LINQ存储过程
- 23. 将复合类型的数组传递给存储过程
- 24. 如何将参数传递给EF存储过程?
- 25. 如何将参数传递给Oracle存储过程在SSIS包
- 26. C#Winforms - 如何将参数传递给SQL Server存储过程
- 27. 如何将参数传递给存储过程
- 28. 如何将输出参数传递给存储过程?
- 29. 如何将表名作为参数传递给存储过程?
- 30. 如何将参数传递给存储过程
你的数组有多大? (条目数量和内存占用) – lexu 2010-04-26 05:55:31
..以及您使用的是哪种DBMS! – lexu 2010-04-26 05:56:58
http://stackoverflow.com/questions/1069311/passing-an-array-of-parameters-to-stored-procedure可能的重复 – 2010-04-26 06:02:23