0

すべてのローカル SQL アカウントを自動修正するように sp_change_users_login を実行するにはどうすればよいですか?

つまり、コマンドを実行してすべてのローカル アカウントを表示できます。

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 に答える