如何执行 sp_change_users_login 以便自动修复所有本地 sql 帐户?
换句话说,我可以运行命令来查看所有本地帐户:
select * from sys.database_principals
where type = 's';
我现在希望在 sp_change_users_login 过程中使用这些用户列表。
如何执行 sp_change_users_login 以便自动修复所有本地 sql 帐户?
换句话说,我可以运行命令来查看所有本地帐户:
select * from sys.database_principals
where type = 's';
我现在希望在 sp_change_users_login 过程中使用这些用户列表。
您可以使用游标来获取名称列表,然后遍历游标结果。在循环中,您可以执行以下操作: exec sp_change_users_login 'auto-fix', @nameVariable
您将在 @@FETCH_STATUS = 0 时循环。当您从游标中获取所有行时,它返回非零值。
这里有更多细节:
declare @userVar varchar(30)
declare users cursor for select name from sys.database_principals where type = 's';
open users
fetch next from users into @userVar
while @@FETCH_STATUS = 0
begin
exec sp_change_users_login 'auto_fix', @userVar
fetch next from users into @userVar
end
close users
deallocate users