重命名数据表中的行

Posted

技术标签:

【中文标题】重命名数据表中的行【英文标题】:rename rows in datatable 【发布时间】:2013-03-24 02:24:57 【问题描述】:

我目前正在为第 3 方应用程序使用数据库,该应用程序没有对我正在使用的列中的数据进行表单检查。我正在使用SqlDataReader(因为这不需要修改数据库中的现有表)将数据放入数据表并删除重复项,但是当我删除重复项时,我仍然会通过不同的人输入数据而留下垃圾重复项不正确。例如;

苹果 应用程序 香蕉 班南 香蕉 奥让 等等……

如何在数据表中更正它们,使数据表只有 Apple、Orange 等...

幸运的是,此列中只有几个不同的项目,并且都以不同的字符串开头,例如 cen、cas,所以如果我能够更改所有以 app 开头的项目

不幸的是,修改原始程序以在输入时检查数据不是一种选择。

【问题讨论】:

这太糟糕了,你不能只修改原始SRC 中的检查,你必须以某种方式假设用户的意思也许你可以添加一些Extension 方法或`接口来强制如果他们输入的单词不是正确的单词,用户可以验证那里的条目。这是一个很好的问题,这是否可能符合您的要求msdn.microsoft.com/en-us/library/ms141809.aspx @DJKRAZE 不幸的是,用于数据输入的第 3 方应用程序已完全关闭,但可以直接访问表。我正在使用应用程序数据库中的表以及另一个应用程序中的表来生成高于两个原始应用程序功能的自定义报告。问题在于,如果没有对该字段进行表单检查,人们会为该项目输入任何接近或任何首字母缩略词。如果我可以检查数据表,那么我应该很高兴。 听起来你需要更严格的Standards 落实到位,这一定是一团糟,一个人甚至如何用类似的东西管理库存或利润/亏损利润率.. 听起来像这样不是"US based Operation" @DJKRAZE 我正在使用大量历史数据来构建配置文件。我正在编写一个应用程序,该应用程序将从该数据库中提取该数据,对其进行转换,并根据用户设置的条件将其显示在网格视图中。当前和未来的数据现在和将来都可以。由于它们的性质,我只假设原始 Dev 打算是动态的只有两个字段。 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。 【参考方案1】:

我认为这个脚本会对你有所帮助。

update [TableName]
set [ColumnName] = 'someName'
where [ColumnName] in 
(
select [ColumnName] from [TableName]
where [ColumnName] != 'someName'
and [ColumnName] != 'someName'
and [ColumnName] != 'someName'
and [ColumnName] != 'someName'
and [ColumnName] != 'someName'
)
--to be safe google "begin transaction" and how to "rollback" the changes

更改列名后,您可以根据更改的名称删除列。

delete [TableName]
where [ColumnName] = 'TheName'

【讨论】:

从数据库拉取的数据表不能修改吗? 当然,您可以修改它并向用户显示您想从该表中显示的任何内容。 您有一个简单的解决方案吗?我可以删除重复项,但在此之前我想重命名垃圾重复项。你知道怎么做吗?

以上是关于重命名数据表中的行的主要内容,如果未能解决你的问题,请参考以下文章

重命名R中的行和列

重命名架构中的嵌套 Json 数据

MongoDB重命名数组中的数据库字段

如何重命名 SQLite 数据库表中的列?

使用linux重命名mysql中的数据库[重复]

如何使用 SQL 重命名数据库表中的列?