Cursor para Drop nos Users Criados em um Determinado BD
21/09/2010
0
Bom dia.
Estou com uma situação para resolver e como não estou acostumado com cursores estou tendo uma certa dificuldade em montar um script, se alguém poder me ajudar com uma dica ou aonde eu possa buscar mais material fico agradecido, a situação segue abaixo:
Preciso montar um cursor que executa um select na tabela sys.database_principals:
SELECT * FROM sys.database_principals WHERE type = 'S' ANDname NOT IN ('dbo','guest','INFORMATION_SCHEMA','sys')
Depois eu preciso executar o Drop user dos usuários que retornam no select, precisa ser em um cursor, pois ele estará dentro de um script que executa vários procedimentos no banco, restaura o .bak, trunca tabelas, faz SHRINK, gera backup, etc, todo o script eu já montei só ficou pendente esse cursor, fico no aguardo de dicas e de sugestões.
Obrigado
Estou com uma situação para resolver e como não estou acostumado com cursores estou tendo uma certa dificuldade em montar um script, se alguém poder me ajudar com uma dica ou aonde eu possa buscar mais material fico agradecido, a situação segue abaixo:
Preciso montar um cursor que executa um select na tabela sys.database_principals:
SELECT * FROM sys.database_principals WHERE type = 'S' ANDname NOT IN ('dbo','guest','INFORMATION_SCHEMA','sys')
Depois eu preciso executar o Drop user dos usuários que retornam no select, precisa ser em um cursor, pois ele estará dentro de um script que executa vários procedimentos no banco, restaura o .bak, trunca tabelas, faz SHRINK, gera backup, etc, todo o script eu já montei só ficou pendente esse cursor, fico no aguardo de dicas e de sugestões.
Obrigado
Marcio Teixeira
Curtir tópico
+ 0
Responder
Posts
21/09/2010
Marcio Teixeira
Já resolvi o meu problema, vou colocar aqui como eu fiz, pode ser que alguem venha a ter o mesmo problema ou parecido.
declare @usuario varchar (50)declare @sql varchar (255)
declare DropUser cursor for
SELECT name FROM sys.database_principals WHERE type = 'S' ANDname NOT IN ('dbo','guest','INFORMATION_SCHEMA','sys')
open DropUserfetch next from DropUser into @usuariowhile (@@fetch_status=0)beginset @sql='DROP USER ' + '[' + @usuario + ']'print @sqlexec(@sql)
fetch next from DropUser into @usuarioendclose DropUserdeallocate DropUser
go
Valeu
declare @usuario varchar (50)declare @sql varchar (255)
declare DropUser cursor for
SELECT name FROM sys.database_principals WHERE type = 'S' ANDname NOT IN ('dbo','guest','INFORMATION_SCHEMA','sys')
open DropUserfetch next from DropUser into @usuariowhile (@@fetch_status=0)beginset @sql='DROP USER ' + '[' + @usuario + ']'print @sqlexec(@sql)
fetch next from DropUser into @usuarioendclose DropUserdeallocate DropUser
go
Valeu
Responder
Clique aqui para fazer login e interagir na Comunidade :)