SQl Server 2005怎么批量替换用户名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQl Server 2005怎么批量替换用户名相关的知识,希望对你有一定的参考价值。
我有两张表,它们是两个系统导出的。它们数据基本一致,用户名不同,但是是一一对应的;就是比如一个叫A的用户产生的数据,在x系统中导出的数据用户名是A,而在y系统中导出的数据用户名是B。我怎么做能将y系统中导出的用户名B批量修改为A
首先,将两个表存进一个数据库中,其次,确定两个表中能够确定当前数据行的列。
最后,根据那个确定的列进行关联批量更新即可。追问
没有可以确定的数据列
update Sheet1$ set 用户名=replace(用户名,'张三','王二')
update Sheet1$ set 用户名=replace(用户名,'李四','麻子')
……
这样也可以实现!我自己知道A表中的用户名对应的是B表中的哪个,因为用户名比较多,如果按照上面那样写行数太多,太麻烦。有没有办法可以我把对应的用户名放在一张表,然后用这张表的用户名去替换另外一张表
总有一个可以确定当前数据行的列,(编号/ID/其他)(只要在这列中是唯一值的列)
没有可以确定当前数据行的列,你把用户名放到别的表也是没用,还得一个一个的修改。
想批量更新就得找出可以确定当前数据行的列,然后进行关联批量更新。
另外,如果是替换表的话,也很麻烦,你的表的约束/索引/其他 的约束什么的都得一一的找出来删除,替换后再重新创建。也是很麻烦
那个数据不是从我的数据库中导出的,两个系统导出的表,用户名不一样,现在我想修改B表中的用户名为A
update products set description=replace(description,'A','a')
update products set description=replace(description,'B','b')
……
我是不是可以这样一直写下去,把表中的A换成a、B换成b……
如果AB表都在数据库中的话,可以关联修改,
我第一印象感觉你说的是两个系统分别导出了两份excel,然后要修改其中一个excel
update products_A set description=products_B.descriptionfrom products_B where products_A.id=products_B.id追问
非常感谢
参考技术B 关联更新即可,可是你的描述中并没有说清楚怎么关联,也就是如何判断两个表中的不同用户名指的是同一个人追问因为没有相同项,
update Sheet1$ set 用户名=replace(用户名,'张三','王二')
update Sheet1$ set 用户名=replace(用户名,'李四','麻子')
……
这样也可以实现!我自己知道A表中的用户名对应的是B表中的哪个,因为用户名比较多,如果按照上面那样写行数太多,太麻烦。有没有办法可以我把对应的用户名放在一张表,然后用这张表的用户名去替换另外一张表
我的意思你没有明白,没有关联项怎么修改?没有的话只能一个名字一个名字的更新了
以上是关于SQl Server 2005怎么批量替换用户名的主要内容,如果未能解决你的问题,请参考以下文章
已知字符串str=' hello SQL Server 2005 ',怎么去除字符串中的空格?