0

如何执行 sp_change_users_login 以便自动修复所有本地 sql 帐户?

换句话说,我可以运行命令来查看所有本地帐户:

select * from sys.database_principals
where type = 's';

我现在希望在 sp_change_users_login 过程中使用这些用户列表。

4

1 回答 1

2

您可以使用游标来获取名称列表,然后遍历游标结果。在循环中,您可以执行以下操作: 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
于 2013-01-25T20:45:52.810 回答