我必须
全部在t-sql中。我知道怎么做mannualy,但有400多名用户,我希望能把我解决问题。
有人可以帮忙吗?
答案 0 :(得分:0)
您需要做的是遍历用户以修改和执行命令以进行所需的更改。您可以通过查询syslogins表并创建包含结果的游标来完成此操作。
我添加了重命名用户的语句,但添加角色就像添加第二个语句和exec一样简单sp_addrolemember
DECLARE @Login as varchar(50);
DECLARE LoginsCrsr CURSOR FOR
SELECT name
FROM syslogins
WHERE name like '%John%'; --Whatever critera you need
OPEN LoginsCrsr;
FETCH NEXT FROM LoginsCrsr
INTO @Login;
WHILE (@@FETCH_STATUS = 0)
BEGIN
DECLARE @TSQL as varchar(255)
DECLARE @NewLogin as varchar(50)
SELECT @NewLogin = @Login -- Do your own thing here
SELECT @TSQL = 'ALTER LOGIN [' + @Login + '] WITH NAME=[' + @NewLogin + ']'
PRINT @TSQL
EXEC (@TSQL)
--Whatever else you need to do
FETCH NEXT FROM LoginsCrsr
INTO @Login
END
GO
CLOSE LoginsCrsr;
DEALLOCATE LoginsCrsr;
GO