SQL Server

工作需要,前几天要尝试把数据库中的一张表的两列加上后缀内容标识,摸索了一下,命令如下:

先查看表 BAK1 中,BAK17 有效期设置为 9999-06-01 到 9999-06-30 之间的内容。

select * from BAK1 where BAK17 between '9999-06-01 09:45:05.000' and '9999-06-30 09:45:05.000' 

这个用来确定要修改的范围,预先查看一下,避免修改错误。
判断内容没问题后,修改表 BAK1 的 BAK05 列;在以列原先内容的基础上加上后缀标识“-作废”,命令如下:

update BAK1 set BAK05 = BAK05+'-作废' where BAK17 between '9999-06-01 09:45:05.000' and '9999-06-30 09:45:05.000'

现在想尝试还原,思路是:取文本左边(文本内容,开始字符位,文本内容总长度-“-作废”的文本长度)
尝试了几次,最终命令如下:

update BAK1 set BAK05 = SUBSTRING( BAK05,0,DATALENGTH(BAK05)-4) where BAK17 between '9999-06-01 09:45:05.000' and '9999-06-30 09:45:05.000'

结果还算成功,以我当下的编程水平,倒也判断不出语句是否冗余。