【问题标题】:transaction in program vs transaction in database程序中的事务与数据库中的事务
【发布时间】:2013-01-11 04:14:57
【问题描述】:

我是新程序员

  1. 我所知道的是有 2 种方式来进行 sql 事务控制。但我想知道的是

    1.1 什么时候应该在程序中使用事务,什么时候应该在数据库中使用事务。 1.2哪个更好(现在我认为程序中的sql事务更好。但是我的老板想在数据库中使用sql事务)

  2. 从第一个问题开始。当我将数据插入主表和明细表时。

    下面是我老板的存储过程

    SaveOrder( 
    @customerID int,
    @value decimal(18,2),
    @details varchar(max)
    )
    

而且我必须像...一样发送数据

SaveOrder(@customerID = 1,@value = 2500,@details = '(1,'apple',2,50),(2,'orange',3,70),(3,'banana',4,120)')

我不同意。但他说“不想在程序中使用sql事务。”

您对此有何看法。哪个更好。

【问题讨论】:

  • 最终事务是在数据库(或 DTC)中控制/实现的,所以你的问题没有意义。
  • 我的意思是SqlTransaction in .Net Framwork 我该怎么做才能插入一条订单记录。以及多条订单详情记录。如果我不想发送多个详细信息记录的字符串。我应该在程序中使用 SqlTransaction 吗?

标签: database stored-procedures sqltransaction


【解决方案1】:

你说你是一个新程序员。所以我强烈建议你按照老板说的去做。不是因为他是你的老板而你是新手,而是因为:

  1. “我不太确定我在说什么,所以我在 StackOverflow 上随机询问了一些陌生人,他们说……”并不是一个强有力的论点。
  2. 将业务规则放入数据库(存储过程)或应用程序中是一场长期存在的宗教战争,无论任何人怎么说,都没有明确的答案。

现在您担心在字符串中传递多个详细记录是对的。那很蹩脚。它应该是一些描述的数组。但是,在这种情况下,正确的做法是与您的老板一起改进存储过程的接口。

最后,底线是:当我们在团队建设中工作时,软件一致性是一项伟大的美德——即使这意味着使用次优方法。

【讨论】:

  • "现在您关心在字符串中传递多个详细记录是对的。"是的,我是。谢谢您的回答。我会
猜你喜欢
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-16
  • 2014-06-02
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
相关资源
最近更新 更多