Maybe putting the password in a variable would help:DECLARE @pwd SYSNAMESELECT @pwd = passwordFROM OldServer.master.dbo.sysloginsWHERE ...UPDATE NewServer.master.dbo.sysloginsSET password = @pwdWHERE ...That's what I do to transfer logins at least. See this code that transfers logins from one machine to the next (it uses linked servers but at least it'll give you an idea):CREATE PROCEDURE isp_Transfer_LoginsASSET NOCOUNT ONDECLARE @login sysnameDECLARE @pwd sysnameDECLARE @new_pwd varchar(255)DECLARE cur_Users CURSOR FORSELECT l.name, l.passwordFROM master.dbo.syslogins lINNER JOIN DTS.dbo.sysusers u ON l.sid = u.sidWHERE (l.isntname = 0) AND (u.islogin = 1 AND u.isaliased = 0 AND u.hasdbaccess = 1)ORDER BY u.nameOPEN cur_UsersFETCH cur_Users INTO @login, @pwdWHILE @@FETCH_STATUS = 0BEGIN -- If the login does not exist on the destination server, then add it. IF ((SELECT count(*) FROM SDDEVSQL1.master.dbo.syslogins WHERE name = @login) = 0) BEGIN EXEC SDDEVSQL1.master.dbo.sp_addlogin @loginame = @login, @passwd = @pwd, @encryptopt = skip_encryption, @defdb = 'QTRACS' END -- If the login does exist on the destination server, then synchronize the password. ELSE BEGIN EXEC SDDEVSQL1.master.dbo.sp_droplogin @login EXEC SDDEVSQL1.master.dbo.sp_addlogin @loginame = @login, @passwd = @pwd, @encryptopt = skip_encryption, @defdb = 'QTRACS' END FETCH cur_Users INTO @login, @pwdENDCLOSE cur_UsersDEALLOCATE cur_UsersRETURNGO
Tara