Publicidad

Leer-escribir y borrar del registry desde SQL Server


Por Alex el 28/06/2004 , Comentar el artículo

Comparte este artículo:        




Leer el registry desde SQL Server no es algo que normalmente hacemos pero siempre es bueno saber que lo podemos hacer. Para ésto se utilizan Extended Stored Procedures indocumentadas, así que no las encontrareis en los libros en pantalla.


Leer.

Para leer las claves del registry hay que ejecutar una Extended Stored Procedure no documentada de la base de datos Master, xp_regread:

EXECUTE xp_regread [@rootkey=]'rootkey',
[@key=]'key'
[, [@value_name=]'value_name']
[, [@value=]@value OUTPUT]

Por ejemplo si queremos leer la versión del SQL Server de la clave del registro HKEY_LOCAL_MACHINE\'SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup\CurrentVersion, CurrentVersion, la forma de utilizar el Extended Stored Procedure seria:

EXEC xp_regread 'HKEY_LOCAL_MACHINE',
'SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup\CurrentVersion',
'CurrentVersion'

Escribir. También podemos escribir en el registry utlizando la Extended Stored Procedure xp_regwrite:

EXECUTE xp_regwrite [@rootkey=]'rootkey',
[@key=]'key',
[@value_name=]'value_name',
[@type=]'type',
[@value=]'value'

Si por ejemplo quisiéramos escribir una nueva entrada llamada Prueba de tipo string y con el valor 'BOTELLA', en la clave anterior lo podríamos hacer de la siguiente forma:

EXECUTE xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup\CurrentVersion', 'PEPE', 'REG_SZ', 'BOTELLA'

Borrar xp_regdeletevalue, este Extended Stored Procedure permite borrar un valor de una determinada clave del registry,

EXECUTE xp_regdeletevalue [@rootkey=]'rootkey',
[@key=]'key',
[@value_name=]'value_name'

En nuestro ejemplo anterior hemos creado la clave PEPE, ahora para borrarla lo hariamos de la siguiente forma:

EXECUTE xp_regdeletevalue 'HKEY_LOCAL_MACHINE',
'SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup\CurrentVersion',
'PEPE'

Si queremos borrar todos los valores de una clave podemos utilizar xp_regdeletekey:

EXECUTE xp_regdeletekey [@rootkey=]'rootkey',
[@key=]'key'

Como ejemplo creamos una rama nueva dentro de ClientSetup que se llame 'Pruebas' y le ponemos un par de claves, para borrarla tendremos que ejecutar el Extended Stored Procedure de la siguiente forma:

EXECUTE xp_regdeletekey 'HKEY_LOCAL_MACHINE',
SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup\Pruebas'

Para poder ejecutar estas Extended Stored Procedure se puede hacer desde el Query Analizer pero el usuario que las utilice debe tener permisos para ejecutarlas sobre la base de datos Master.

Nota: Estos Extended Stored Procedures interactúan directamente con el registry, es conveniente no jugar con el registry porque podemos tener graves problemas y corromper el sistema por eso queda a vuestro riesgo el jugar con él.

Y esto es todo, feliz programming!!
Saludos
Alex


Si te ha gustado el artículo compartelo en:      



También puede interesarte:

Migrar una base de datos de MySql a SQL Server

Migrar una base de datos de MySql a SQL Server

Por Alex, el 08/01/2021

SQL Server - extraer el día, mes y año de una fecha

SQL Server - extraer el día, mes y año de una fecha

Por Alex, el 07/01/2021

EL poder del Transact-SQL.

EL poder del Transact-SQL.

Por Alex, el 06/01/2021

Instalar SQL Server 2019 gratis para desarrollar

Instalar SQL Server 2019 gratis para desarrollar

Por Alex, el 14/12/2020

SQL Server Management Studio - administrador SQL Server

SQL Server Management Studio - administrador SQL Server

Por Alex, el 14/12/2020

Instalación personalizada de SQL Server

Instalación personalizada de SQL Server

Por Alex, el 14/12/2020


Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN

ARCHIVO

Publicidad

.