Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 Passing variable into CREATE LOGIN script

Author  Topic 

Analyzer
Posting Yak Master

115 Posts

Posted - 2013-09-23 : 05:42:28
Need to create same login on 100s of servers using local admin login create on the OS. (for xp_cmdshell proxy setup)

Normal command works fine but I meed to make <svr_name> a variable.

CREATE LOGIN [<svr_name>\DBALocalUser] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO

When I try various efforts to pass in the <svr_name> portion it fails every time. Any ideas to correct syntax.

declare @cmd varchar(200),
declare @username varchar(50)

set @username = 'DBALocalUser'
set @cmd = ' CREATE LOGIN ['+@@servername+'\'+@username'] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]'
GO
PRINT @cmd
EXEC (@cmd)
------------------------------------------
-- or this effort

declare
@SVR varchar(100) = @@servername,
@NEW_LOGIN varchar(25);

SET @NEW_LOGIN = 'DBALocalUser';

Declare @sqlstmt varchar(200)
Set @sqlstmt=''CREATE LOGIN ['+@SVR +'\''@NEW_LOGIN''] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO

webfred
Master Smack Fu Yak Hacker

8781 Posts

Posted - 2013-09-23 : 06:27:36
After a GO the batch has endet and no variables are alive.
So delete the GO-line...


Too old to Rock'n'Roll too young to die.
Go to Top of Page
   

- Advertisement -