存储过程具有多个参数

时间:2011-07-22 09:33:35

标签: sql sql-server tsql stored-procedures

我需要一个SP,可以使用大约24个输入参数将记录插入表中。发送多个参数的一种方法是使用XML数据类型。在SQL SP中发送多个输入参数的任何其他最佳实践?

任何建议表示赞赏!

2 个答案:

答案 0 :(得分:7)

如果您只插入固定数量的记录,则可以在SP中定义24个参数。这样您就可以进行一些编译时检查,也可以为每个参数定义not-null,null或默认值,以获得更大的灵活性。

除非我有可变数量的参数,否则我不会使用XML数据类型,或者我必须模拟参数数组(例如同时插入多个顺序行)。

如果您使用的是SQL Server 2008或更高版本,则支持Table-Valued Parameters。您也可以查看此链接for using table-valued params with .NET SqlCient

答案 1 :(得分:1)

Vasile Bujac的回答非常好,我同意一切。但值得一提的是,Sommarskog是一位杰出的MVP,它有一些非常好的文章可以模仿SQL Server中的数组,这可能非常适合你的情况。您可以在此处找到它们:http://www.sommarskog.se/arrays-in-sql.html