【问题标题】:Duplicate a column into a temporary table then convert data将列复制到临时表中,然后转换数据
【发布时间】:2014-10-02 10:55:06
【问题描述】:

有没有办法从当前数据库表中复制一列(将表中的所有列内容复制到临时表中),然后 转换列中的字符串值并将其递增 1,然后 将所有这些值以字符串的形式放回其原始表中?

所以伪代码看起来像:

 copy column1 from tblReal into tmpcolumn in tblTemp (set tmpcolumn1 as nvarchar(265))
 update tblTemp
 set tmpcolumn1 = 'TESTDATA' + 1
 copy tbmpcolumn1 from tblTemp into column1 in tblReal

【问题讨论】:

    标签: sql set increment


    【解决方案1】:

    所以实际上您想通过将其值增加 1 来更改实际上包含数字的字符串列。为什么需要三个步骤?只需立即在列上执行更新语句。我不明白你为什么需要中间表。

    UPDATE tblReal SET column1 = column1 + 1
    

    小菜一碟。您可以使用 cast 函数将 varchar 转换为数字,然后在更新语句中再次返回。

    【讨论】:

    • 他可能需要一些关于他的操作的历史表来查看他何时以及在哪些列上进行了更改,至少我是这么认为的。
    • 没错,让我们等他说什么:)。
    • 我认为您不能使用 int 数据类型增加字符串值。因此,整个导出到临时表,转换然后通过另一个转换导入到原始表
    • 另外我不希望转换此表中的任何字段或值类型,而是在外部进行,再次转换并将其导出为字符串
    • 还有没有办法让它变得多才多艺? (即选择一个特定的表或列,甚至多个)
    猜你喜欢
    • 2014-02-13
    • 2016-08-17
    • 2020-04-05
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 2017-07-13
    相关资源
    最近更新 更多