在SQL 2005中将值数组传递给存储过程

时间:2009-06-15 13:19:15

标签: sql-server sql-server-2005 tsql

  

可能重复:
  T-SQL stored procedure that accepts multiple Id values

T-SQL是否适合将数组值作为存储过程的参数?如果是这样,怎么能实现。

4 个答案:

答案 0 :(得分:2)

SQL Server 2005中的T-SQL方言既不支持数组也不支持任何类似的数组,因此它们必须是emulated。但是,SQL Server 2008支持table-valued parameters,它可以用作数组。

答案 1 :(得分:1)

我更喜欢使用的是逗号(或其他特殊字符)分隔列表,我将在我的sproc中首先拆分/爆炸。然后,这将为我提供一个值表,以便我可以在以后的存储过程中加入或执行其他操作。

您还可以查看传递表格参数,但我更喜欢我的方式,而不仅仅是个人偏好。

答案 2 :(得分:0)

通常会通过CSV传递,这显然是有限的。使用SQL 2005,Xml参数可能更适合,可能还有适合您需求的序列化器。

可能会有更多,如果我想到的话,我会回来的。

答案 3 :(得分:0)

sqlserver中没有数组。但是,你想做什么?作为参数的值会用于什么?您可以向sql发送一个“数组”,但sp必须是动态的。