SQL Server:查询以替换数据

时间:2014-07-23 16:19:08

标签: sql-server database

我需要获取实时SQL Server数据库的所有密码,并将其替换为备份中的密码。

基本表格设置:

Main

Account_ID   Username    Password
----------------------------------
    1        Blah        gy12uid91
    2        Blah2       gy12uid92

Backup

Account_ID   Username   Password
----------------------------------
   1         Blah       xxxxxxxx
   2         Blah2      xxxxxxxx

我只需要从备份数据库获取密码,并将它们放在用户名与实时数据库相同的位置,这样两者都是相同的,但只有用户名相同的地方。

我在考虑某种类型的查询:

UPDATE livedb 
FROM backupdb 
WHERE username ='name'
SET password ='xxxxxxxx'
WHERE username ='name'

换句话说,我有3600行,需要大规模更改所有密码而不需要复制粘贴。

2 个答案:

答案 0 :(得分:0)

UPDATE l
SET password=b.password
FROM Livedb.schema.table l
INNER JOIN backupdb.schema.table b
  ON l.Username=b.Username

答案 1 :(得分:0)

假设您已将数据库还原到同一服务器上的另一个位置,并且数据库名为liverestored

UPDATE liveUsers
SET liveUsers.password = restoredUsers.password
FROM live.users liveUsers
JOIN restored.users restoredUsers
    ON liveUsers.Account_ID = restoredUsers.Account_ID

这会将password列格式restored替换为live,方法是匹配Account_ID