我有一个任务存档一些数据库表。为简化一切,我基本上必须执行以下操作:
我必须在几个表上执行这些操作。
这article告诉我根据不同的CRUD操作创建单独的SP(每个CRUD操作一个)。我们可以看到,我需要执行的步骤是READ
,UPDATE
和DELETE
。然后根据这篇文章,我的每个表都需要3个SP。所以如果我需要备份10个表,那么我需要编写30个SP?
有人可以告诉我这是否是正确的做法?
感谢。
答案 0 :(得分:2)
代表我的学习曲线说:当我开始使用数据库时,我并不关心我现在所做的事情。最简单,更“逻辑”的方法是在一个SP中执行CRUD,因为根据您的场景,事情很小。 但是当谈到可扩展性时,你真的需要将它们分开。开始构建编程是一个好习惯。 另一点需要指出的是,您可以对数据库应用的订单越多越好。
关于必须使用CRUD 10表。不,你不需要30个SP(也许你会这样做,但这是一个非常不可能的场景)。您可以使用变量,参数和填充,以便使用参数(对于表名等)对多个表执行READ。与其他CRUD的操作相同。
因此,简而言之:也许你最终只有一个庞大而复杂的SP来读表。但就是这样,你努力工作一次,然后你又一次又一次地重复使用。 (这是一件好事;如果你不知道OOP,它将在未来明确地帮助/拯救你)
答案 1 :(得分:0)
考虑一个存储过程来概述您要执行的某种功能。您正在尝试将数据存档在表中,因此我将调用存储的proc dbo.Archive_Table1。 “Archive_”是表示过程操作的前缀,后缀是您要操作的对象(或多个对象)。
举一个简单的例子,假设您希望将数据存档在几个与汽车数据相关的表中。 dbo.Make,dbo.Model,dbo.Sales等。你可以创建一个名为dbo.Archive_Cars的存储过程,它作用于所有这些表。它足够冗长,可以告诉任何人,看看你想要做什么。
在新的存储过程中,随意做任何你想做的事情。一起插入和删除!这将使您的生活变得更容易,不必处理30个SP。当然,您最终可能会在以后创建其他一些CRUD SP,但会根据需要进行。
你在问题中的提纲是完美的;只需将其转换为代码即可。