我们有一个用C#编写的应用程序,它连接到MS SQL服务器. 我们过go 常常 for each 数据库调用创建一个存储过程,但是我们注意到使用存储过程给我们带来了一个非常大的缺点,如果我们更改数据库,我们不知道需要更新哪些存储过程.

现在我在想,使用存储过程是好事还是坏事?

推荐答案

这不是SP问题,而是开发过程中的问题.如果你没有需要的信息,就go 获取吧.

您可以制作一个简单的可视映射,显示您的表架构和依赖的SP.如果您的数据库太大,无法进行可视化映射,请添加由SP及其所依赖的表名组成的通用文本文件.

无论如何,数据库越大,将模式的细节内联到应用程序代码中的工作就越糟糕.当您使用SP时,您可以保证此功能不会加倍,并且在没有应用程序recompilationredistribution的情况下,大多数更改将发生在DB端.

Upd

我忘了提到另外一件事.好的数据库工具提供了查找每个SP的从属表的简单方法.例如,在Microsoft SQL Management Studio的SP上下文菜单中有"查看依赖项"项.

Database相关问答推荐

如何替换对象数组内的数组元素

术语 SSTable 和 LSM Tree 有什么区别

如何以编程方式在 C# 中创建 Microsoft Access 数据库?

用于为 Android 设计 SQLite 数据库的开发人员工具

有没有办法为 2 个具有不同包名称的应用程序提供 1 个 Firebase 数据库?

Objective-C中是否有类似于LINQ的东西?

PostgreSQL Clob 数据类型

如何在 MS Access 中实现 SQL INTERSECT 和 MINUS 操作

基于邮政编码的纬度和经度

存储所有排列的模式数据库

是否可以使用 Mongo 的 Object ID作为其唯一标识符?如果是这样,如何将其转换为字符串并按字符串查找?

MySQL workbench:如何将 mysql 数据库导出到 .sql 文件?

Joomla 数据库设置

Windows 环境下无法识别 postgres 'psql' 命令

对于 Postgres (Windows),有没有像 TOAD 一样好的东西?

获取错误函数 to_date(timestamp without time zone, unknown) 不存在

如何将特定的、可变的 order订单保存到数据库中

用 SQL 进行条件插入?

数据库与平面文本文件:当性能不是问题时, Select 一个而不是另一个的一些技术原因是什么?

列的 SQL Server 2008 千位分隔符