En este post comentaré algunos procedimientos extendidos de SQL Server que son muy útiles. Hasta este post, no encontré ninguna documentación oficial de Microsoft sobre esto, así que decidí comentarlo, además de demostrar algunos ejemplos.
Un procedimiento extendido (XP) es un enlace a una biblioteca dinámica (DLL), programada utilizando la API Open Data Services de SQL Server y se utiliza para ampliar las funcionalidades de SQL Server. Puede utilizar los distintos procedimientos que vienen con SQL Server o crear sus propios procedimientos extendidos utilizando los lenguajes de programación C o C++.
Actualmente, no hay muchos incentivos para utilizar estos procedimientos, ya que han quedado obsoletos y deberían eliminarse en alguna versión futura de SQL Server. La alternativa más viable para reemplazar los Procedimientos XP es el uso de procedimientos CLR de SQL.
Sin embargo no podía dejar pasar la oportunidad de comentar estos SP's, que siempre me han ayudado en varias ocasiones y todavía veo muchas rutinas usándolos.
Para ver la lista de procedimientos extendidos presentes en su instalación, simplemente ejecute el siguiente comando:
EXEC master.dbo.sp_helpextendedproc
Procedimientos XP - sp_helpextendedproc
sp_MSgetversion
Ver información
Este procedimiento se puede utilizar para devolver la versión actual de SQL Server.
Ejemplo de uso:
EXEC master..sp_MSgetversion
Procedimientos XP - sp_MSgetversion
Solución alternativa:
SELECT @@version
xp_dirtree
Ver información
Este procedimiento se puede utilizar para enumerar todas las carpetas y subcarpetas (recursivamente) de un directorio determinado.
Ejemplo de uso:
EXEC master..xp_dirtree 'C:\'
Procedimientos XP - xp_dirtree
xp_subdirs
Ver información
Este procedimiento se puede utilizar para devolver directorios (no recursivos) desde un directorio informado. En comparación con el procedimiento xp_dirtree, solo devuelve filas donde la profundidad del nodo = 1.
Ejemplo de uso:
EXEC master.dbo.xp_subdirs 'C:\Users\'
Procedimientos XP - xp_subdirs
xp_enum_oledb_providers
Ver información
Este procedimiento se puede utilizar para devolver todos los proveedores OLE DB disponibles. Devuelve el nombre del proveedor, el nombre del análisis y la descripción del proveedor.
Ejemplo de uso:
EXEC master..xp_enum_oledb_providers
Procedimientos XP - xp_enum_oledb_providers
xp_enumerrorlogs
Ver información
Este procedimiento se puede utilizar para devolver todos los archivos de registro de errores y cambiar las fechas.
Ejemplo de uso:
EXEC master.dbo.xp_enumerrorlogs
Procedimientos XP - xp_enumerrorlogs
xp_readerrorlog
Ver información
Este procedimiento se puede utilizar para leer el archivo de registro de errores de SQL Server. Como parámetro opcional, puede ingresar el número del archivo. Si no se informa, mostrará el registro actual.
Lista de parámetros:
1er parámetro: Número del archivo de registro que desea ver (0 = Actual, 1 = Archivo #1, 2 = Archivo #2)
Segundo parámetro: tipo de archivo de registro (1 o NULL para el registro de errores, 2 para el registro del Agente SQL)
3er parámetro: la cadena que desea buscar
4to parámetro: Otra cadena para refinar el resultado ya filtrado
5to parámetro: fecha de inicio del registro
Sexto parámetro: fecha de finalización del registro
7mo parámetro: Orden de resultados ('asc' = ascendente, 'desc' = descendente)
Este procedimiento se puede utilizar para eliminar archivos de respaldo o de informes. Aunque el nombre parece que puede eliminar cualquier archivo, está restringido únicamente a archivos de copia de seguridad (BAK) e informes (RPT).
Ejemplo de uso:
EXEC master.dbo.xp_delete_file
0, -- (0 = Arquivo de backup, 1 = Arquivo de report)
'C:\Backups\', -- diretório (terminando com "\")
'bak', -- extensão do arquivo (sem o ".")
'2015-08-31', -- data de corte para deletar
1 -- flag para subdiretórios (1 = incluir sub-diretórios, 0 = não incluir)
Procedimientos XP - sp_delete_file
xp_fixeddrives
Ver información
Este procedimiento se puede utilizar para enumerar todas las unidades de discos físicos o unidades asignadas, informando el espacio libre.
Ejemplo de uso:
EXEC master.dbo.xp_fixeddrives
Procedimientos XP - xp_fixeddrives
xp_disponiblemedia
Ver información
Este procedimiento se puede utilizar para enumerar todas las unidades de respaldo conectadas al servidor. Si no tiene ninguna unidad, el SP le devolverá todas las unidades de disco.
Ejemplo de uso:
EXEC master.dbo.xp_availablemedia
Trámites XP - xp_availablemedia
xp_getnetname
Ver información
Este procedimiento se puede utilizar para devolver el nombre WINS de la máquina donde está conectada su sesión.
Ejemplo de uso:
EXEC master..xp_getnetname
Procedimientos XP - xp_getnetname
xp_regdeletekey
Ver información
Este procedimiento se puede utilizar para eliminar una clave en el Registro de Windows de la instalación de SQL Server. Tenga mucho cuidado al utilizar este procedimiento, ya que puede dañar la instalación de Windows en ese servidor.
Este procedimiento se puede utilizar para eliminar un valor específico de una clave en el Registro de Windows de la instalación de SQL Server. Tenga mucho cuidado al utilizar este procedimiento, ya que puede dañar la instalación de Windows en ese servidor.
Este procedimiento se puede utilizar para escribir un valor específico de una clave en el Registro de Windows de la instalación de SQL Server. Tenga mucho cuidado al utilizar este procedimiento, ya que puede dañar la instalación de Windows en ese servidor.
Ejemplo de uso:
EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Teste_Dirceu',
@value_name = 'Flamengo na Copa do Brasil 2015',
@type = 'REG_SZ',
@value = 'Eliminado pelo Vasco'
Procedimientos XP - xp_regwrite_1
Procedimientos XP - xp_regwrite_2
xp_cmdshell
Ver información
Le permite ejecutar cualquier comando del símbolo del sistema (DOS) en el servidor. Tenga mucho cuidado al utilizar este procedimiento, ya que puede dañar la instalación de Windows en ese servidor.
Para utilizar este comando es necesario habilitar esta característica, ya que si se usa mal, puede dañar seriamente tu instalación:
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1 -- 0 para desativar
GO
RECONFIGURE
GO
Comentários (0)
Carregando comentários…