关于插入和更新存储过程



我有一个注册页面,首先我想在数据库中插入一些必填字段,然后在第二页中,我想根据userid更新更多详细信息

所以我想用存储过程来做到这一点,这是最好的方法,单独创建插入和更新存储过程还是创建一个具有插入和更新的过程?

哪个在性能方面最好?

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

您可以创建两个单独的存储过程,一个用于INSERT,一个用于UPDATE。这对任何人都能理解

来说很简单。

但是,如果您使用的是 MSSQL 2008 或更高版本,则可以创建单个存储过程并利用MERGE

Technet SQL MERGE

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

任何性能差异都可以忽略不计。在某个地方肯定会有几微秒的差异,但它真的会那么小,一堆其他的小决定将消除差异。

那么唯一真正的区别是代码的清晰度。从您的描述中,在我看来,"创建新用户"和"更新用户"被代码的其余部分视为单独的关注点,因此应该是分开的。

如果您的代码会发现处理"根据需要创建或更新"操作更容易,那么那将是另一回事,但没有任何迹象表明这里就是这种情况。

您可以创建一个用于插入的过程和另一个用于更新的过程

最新更新