关于插入和更新存储过程

时间:2012-08-08 13:09:08

标签: c# sql-server

我有一个注册页面,并且首先我想在DB 中插入一些必填字段,之后在第二页中我希望根据{{更新更多详细信息1}}

所以我想用存储过程执行此操作这是最好的方法,单独创建插入和更新存储过程或创建具有插入和更新的单个过程吗

在性能方面哪个最好?

5 个答案:

答案 0 :(得分:1)

在同一查询中使用它们没有性能提升,因为数据库服务器仍在预编译两个单独的存储过程。这更像是一个维护问题而不是性能 - 我建议使用单独的存储过程进行插入和更新,这比在单个脚本中将它们混合在一起更加可读和明显。

答案 1 :(得分:0)

您可以为插入创建一个过程,为更新创建另一个过程

答案 2 :(得分:0)

您可以创建两个单独的存储过程,一个用于INSERT,另一个用于UPDATE。这对任何人来说都很简单。

但是,如果您使用的是MSSQL 2008或更新版本,那么您可以创建一个存储过程并使用MERGE

Technet SQL MERGE

答案 3 :(得分:0)

编写单独的插入和更新过程会更有效,因为程序不必考虑是否插入或更新虽然效率节省将是最小的,所以我不会基于此做出决定它应该更多地基于可读性和可理解性。

答案 4 :(得分:0)

任何性能差异都可以忽略不计。在那里某处必然存在几微秒的差异,但它实际上只是那么小,而其他一些小决定将消除差异。

唯一真正的区别在于代码的清晰程度。在您的描述中,我认为“创建新用户”和“更新用户”被其他代码视为单独的问题,因此应该是分开的。

如果有一些原因导致您的代码更容易处理“适当的创建或更新”操作,那么这将是另一回事,但没有任何迹象表明它就是这种情况。