四十参数不应该是一个搅局者,但如果你真的想要更少的参数传递给存储过程,你可以考虑passing an XML argument(s)封装的40个值存储过程 - 例如...
<booksdetail>
<isbn_13>800007890</isbn_13>
<isbn_10>07890B</isbn_10>
<image_url>http://www.whatever.com/Books/large/00/800007890.jpg</image_url>
<title>Some Title</title>
<description>The incredible story of....</description>
-- ...
</booksdetail>
...传递给@bookDetail xml
,而不是在其中传递给值:
@isbn_13 varchar(13),
@isbn_10 varchar(10),
@image_url varchar(100),
@title varchar(100),
@description varchar(250),
-- ...
您仍然必须考虑存储过程中的40个值,但是如果您的偏好是较小的存储过程签名,则此方法将实现同样的效果。
你能分享你的代码吗? –
您使用的是哪个版本的SQL Server? –
添加40个参数有什么问题?如果你感觉特别懒,你可以使用sys.parameters系统表来更快地写代码:SELECT选项.Parameters.AddWithValue(“'+ Name +'” ,'+ STUFF(Name,1,1,'')+'TextBox.Text);' FROM sys.parameters WHERE Object_ID = OBJECT_ID(N'dbo.YourProcedureName');' – GarethD