四十參數不應該是一個攪局者,但如果你真的想要更少的參數傳遞給存儲過程,你可以考慮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