c# - 2 次调用或一次调用 sql server

标签 c# sql-server stored-procedures transactions

我在我的 .net 应用程序中有一个操作,它在 2 个不同的 sql server 表中创建一条记录。这里的最佳做法是什么?

一个存储过程应该创建两条记录吗? 或者 是否应该使用不同的存储过程在适用的数据库中创建每条记录并将两个调用包装在一个事务中,以便如果一个失败,则两个都失败?

哪个性能更好?

最佳答案

毫无疑问,存储过程的性能会更高。它还将减少您必须在服务器端编写的代码。缺点是,您现在需要知道如何自己编写 SQL,或者让与您一起工作的 DBA 为您编写 SQL。

关于您的其他问题,将有 1 个存储过程插入到两个表中。

另一件需要考虑的事情:如果你必须在整个代码中做大量这样的事情,那么学习一个好的 ORM 并在代码中完成这些可能是值得的(选项 2)。但是,如果这是您只在少数几个地方做的一次性事情,存储过程将是一种更聪明的方法。

关于c# - 2 次调用或一次调用 sql server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13850921/

相关文章:

c# - 使 WPF ListBox 逗号分隔值

c# - 如果更改了其中一个 Controller 方法,我是否应该将每个 Controller 方法更改为异步?

c# - Xamarin PCL库和Sqlite数据存储

sql - SUM()/total rows 和 AVG() 在 sql server 之间返回不同的结果

postgresql - 选择整数返回函数结果到变量 postgres

mysql - 存储过程参数类型

c# - 具有空对象的 Linq-to-Sql 表达式抛出 NPE

python - 连接到 Linux 上的 MSSQL Server 2008

sql - 如何修复 "Only one expression can be specified in the select list when the subquery is not introduced with EXISTS"错误?

php - 将 PHP 字符串作为 SQL 命令传递并保留换行符