在 SQL Server 2000/2005 中更新表的工具

Posted

技术标签:

【中文标题】在 SQL Server 2000/2005 中更新表的工具【英文标题】:Tools to update tables in SQL server 2000/2005 【发布时间】:2010-06-12 00:55:39 【问题描述】:

是否有任何方便的工具可以使更新表格更容易?通常我会得到一个 Excel 文件,其中一列中的原始值和另一列中的新值。然后我在 Excel 中编写一个公式来创建“更新”语句。有什么方法可以简化更新任务?

我相信 SQL Server 2000 和 2005 中的方法会有所不同,所以我们可以同时讨论它们吗?谢谢。

另外,这些更新通常是由“非程序员”请求的(这意味着他们不懂SQL,所以让他们做查询可能不可行),有没有什么工具可以让他们直接更新表无需 DBA 执行此任务?此外,该工具需要将权限限制为仅修改某些表。并且更好的方法是回滚更改。

【问题讨论】:

当我读到这样的问题时,我真的很担心数据模型。 我同意这是非常无组织的。请提出更好的方法。 【参考方案1】:

创建一个 DTS 包,该包将导入 csv 文件,进行更新,然后归档文件。用户可以将文件放在为任务指定的特定文件夹中,或者这可以由操作人员完成。安排 DTS 每小时、每天等运行一次。

【讨论】:

在 SQL Server 2005 中,SSIS 是改进的 DTS。不确定 DTS,但 SSIS 支持 Excel 文件作为源,因此在这种情况下不需要 CSV。事实上,提问者可能根本不需要使用 DTS。似乎他们家里都有 2000/2005,所以 Stan 可以使用在 SQL Server 2005 安装上运行的 SSIS 将数据获取到 SQL Server 2000 数据库中。【参考方案2】:

如果您的用户坚持要继续使用 Excel,您可以通过多种不同的方式将数据传输到 SQL Server。如 buckbova 所述,我更喜欢使用 DTS/SSIS。

但是,另一种方法是使用 OPENROWSET(),它可以像查询表格一样查询您的 Excel 文件。我在这里写了一篇关于它的小文章:http://blog.hoegaerden.be/2010/03/29/retrieving-data-from-excel/

另一种尚未提及的方法(我不太喜欢让普通用户直接在数据库中编辑数据),是否有可能为他们创建一个小型自定义应用程序?

你去吧,还有几个可能的解决方案:-)

华伦天奴。

【讨论】:

不需要使用 Excel。但可以肯定的是,他们无权访问 DB,我认为修改 DB 的小型自定义应用程序是个好主意。所以我想知道是否有很多开发人员为非开发人员创建基于 Web 的应用程序来修改浏览器中的数据库?请指教。 我很确定这确实是一种常见做法。我的个人经验(作为 BI 开发人员)如下:业务人员希望/需要维护一些固定数据,例如将数据映射到将业务键从一个系统映射到另一个系统的业务键。维护这些数据通常是通过自定义 Web 应用程序完成的。这使您可以完全控制最终结果(某处表格中的数据),而业务人员可以使用吸引人的界面。【参考方案3】:

我认为最好的方法是向允许进行更新的用户公开可访问的数据视图,并在视图上设置触发器以对基础数据执行实际更新。将更改限制为仅应更改的列。

This technique 可以在 SQL Server 2000 和 2005 上运行。

我会在基础表上添加审核触发器,以便您始终跟踪更改。

您将拥有完全的控制权,他们可以使用 Access 或其他任何工具连接到它并执行维护。

【讨论】:

【参考方案4】:

您可以在 SQL Server 中为这些用户创建一些帐户,并限制他们仅访问某些表和列以及 onlu 选择/更新/插入权限。然后你可以创建一个带有链接表的访问数据库。

【讨论】:

以上是关于在 SQL Server 2000/2005 中更新表的工具的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 2008 中更改行

如何在 SQL 2000/2005 中执行区分大小写的搜索和替换?

MYSQL是微软的产品吗?SOL SERVER2000\2005是哪个公司开发的?

如何在 SQL 2000/2005 上设置与 Oracle 数据库的链接服务器?

怎么在sql servler2000中建立一个序列,用sequence写的

sql server有LINUX的版本吗