我需要获取实时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行,需要大规模更改所有密码而不需要复制粘贴。
答案 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)
假设您已将数据库还原到同一服务器上的另一个位置,并且数据库名为live
和restored
:
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