We've all been used to using the stored procedure "sp_change_users_login" for some time now. This SP is no longer the route to take when fixing orphaned users. Now we have the following TSQL command:
ALTER USER xxxx WITH LOGIN = xxxx
Admittedly this does not resolve the issue of a missing login, in this situation you simply need a check to ensure that the login exists before attempting to alter the users SID, the following can be used:
IF SUSER_SID('someuser') IS NULL
BEGIN
CREATE LOGIN [xxxx] WITH PASSWORD = 'xxxx' --sql
CREATE LOGIN [xxx\xxxx] FROM WINDOWS --Windows
END
ALTER USER xxxx WITH LOGIN = xxxx