Manejo de ciclos y cursores en SQL SERVER
En este ejemplo, voy a mostrar cómo crear varios logins de sql server en SQL Server.
Voy a usar el T-SQL que no es otra cosa que el lenguaje transact –sql de Microsoft. Una extensión del sql.
Los nombres son usuario1, usuario2, usuario3, etc, etc.
Este código fue probado en SQL Server 2005 y 2008. Teóricamente funciona también en SQL Server 2000.
Estos ejemplo ayuda mucho a entender como pasar variables dentro de sentencias T-SQL. El comando execute es la clave del éxito para muchos propósitos de T-SQL.
Declare @database varchar(8)
Set @database=´base1´
Execute(‘create database ’ +@database)
El comando execute permite manejar variables facilmente dentro de comandos T-SQL.
Voy a usar el T-SQL que no es otra cosa que el lenguaje transact –sql de Microsoft. Una extensión del sql.
Los nombres son usuario1, usuario2, usuario3, etc, etc.
Este código fue probado en SQL Server 2005 y 2008. Teóricamente funciona también en SQL Server 2000.
Estos ejemplo ayuda mucho a entender como pasar variables dentro de sentencias T-SQL. El comando execute es la clave del éxito para muchos propósitos de T-SQL.
Declare @database varchar(8)
Set @database=´base1´
Execute(‘create database ’ +@database)
El comando execute permite manejar variables facilmente dentro de comandos T-SQL.
- Cómo crear varios logins y usuarios de base de datos sql server utilizando ciclos.
- Para borrar la lista de logins y usuarios creados anteriormente
- Para dar permisos de GRANT CREATE ANY DATABASE A TODOS LOS LOGINS
Cómo crear varios logins y usuarios de base de datos sql server utilizando ciclos:
Este es un ejemplo básico de cómo crear varios logins con nombres aleatorios.
/*El siguiente ejemplo crea 10 logins de sql server*/
declare @login varchar(10)
declare @count int
set @count=1
/*Se usa el comando while en ciclos de sql server*/
while @count<=10
BEGIN
set @login='login'+CAST(@count as varchar(2))
/*Crea logins*/
EXECUTE ('CREATE LOGIN ' + @login+' WITH PASSWORD =''coso''')
EXECUTE ('CREATE USER '+@login)
set @count=@count +1
END
/*Para borrar la lista de logins y usuarios creados anteriormente*/
declare @login varchar(10)
declare @count int
set @count=1
while @count<=10
BEGIN
set @login='login'+CAST(@count as varchar(2))
EXECUTE ('drop LOGIN ' + @login)
EXECUTE ('drop USER ' + @login)
set @count=@count +1
END
Para dar permisos de GRANT CREATE ANY DATABASE A TODOS LOS LOGINS
Esto es más complicado. Primero hay que utilizar cursores de sql server. Cursores es una manera de recibir los datos y manipularlos secuencialmente. En este caso vamos a obtener los logins de la base de datos de la vista master.sys.syslogins. Esta vista contiene los logins del sistema. Vamos a guardar en una variable @login cada uno de los cursores. Entonces, lo primero que hay que hacer es usar el DECLARE, para crear el cursos. Es muy parecido a la declaración de variables. Luego se abre el cursos con OPEN.
FETCH NEXT sirve para ir de fila en fila. Con FETCH NEXT vamos a ir cambiando de login. Luego con execute le damos el permiso deseado y le pasamos el login.
/*Para dar permisos de GRANT CREATE ANY DATABASE A TODOS LOS LOGINS DE LA BASE DE DATOS SQL SERVER
*/
DECLARE Login_Cursor CURSOR FOR
SELECT name
FROM master.sys.syslogins
OPEN Login_Cursor
DECLARE @login varchar(30)
FETCH NEXT FROM Login_Cursor into @login
WHILE @@FETCH_STATUS <> -1
BEGIN
execute ('grant create any database to '+@login )
--execute ('create user '+@login )
FETCH NEXT FROM Login_Cursor into @login
END
CLOSE Login_Cursor
DEALLOCATE Login_Cursor
GO
Espero que estos ejemplos sean útiles.
Sin tienen preguntas escriban a este blog.
Agradeceria que alguien me ayudara con algunas pistas para desarrollar o siguiente:
ResponderEliminarOBJETIVO GENERAL
Crear un sistema que permita el reporte de quejas, reclamos, sugerencias, felicitaciones, problemas de hardware, de software, y de mantenimiento en general, entre otros, y que a su vez permita generar una solución rápida y eficaz a los reportes.
MATRIZ DE TRAZABILIDAD
Requerimiento JEFE DE AREA DBA EMPLEADO
Validar ingreso de administrador x
Validar ingreso de empleado x
Ingresar empleado x
Modificar empleado x
Consultar empleado x
Borrar empleado x
Ingresar estado x
Modificar estado x
Consultar estado x
Borrar estado x
Radicar requerimiento X x
Asignar requerimiento X
Solución parcial X
Solución total X
Cancelar requerimiento x
Mil gracias.
Vale. En que programa hay que realizar ese sistema ?. SQL Server con C# ?
ResponderEliminar