martes, 17 de enero de 2017

TOP Y OFFSET



La clausula TOP tiene algunas variantes  para el filtrado, como es PERCENT
, el cual te permite mostrar un porcentaje del número de filas total.
select top (25) percent *
from tabla

También se tiene la opción WITH TIES , sentencia que sirve  para filtrar cierto número de filas pero también agrega  filas que al momento de hacer la comparación tuvieron el mismo valor que la última fila mostrada, esta sentencia necesariamente se tiene que utilizar con  order by

select top (3)  with ties  columna1,columna2
from tabla
order by columna1

SQL Server también soporta el estándar OFFSET –FETCH
En el cual la clausula OFFSET sirve para indicar desde que fila se empezara a mostrar la información, y FETCH indica cuantas filas serán mostradas.
OFFSET puede ser utilizado sin la clausula FETCH, pero no viceversa
La clausura order by tiene que estar explícitamente en la sentencia.
select   *
from tabla
order by (select null )
OFFSET 2 ROWS

fetch next 5 rows only;

Operador “LIKE”


Este operador nos ayuda en filtrar información de una cadena de caracteres  dependiendo del patrón ingresado,
%
Busca cualquier tipo de carácter o caracteres, incluso vacio.
_
Busca cualquier carácter pero solo uno
[ conjunto de caracteres  ]
Puede tener cualquier carácter que se encuentre en el conjunto
[ rango de caracteres]
Puede tener cualquier carácter que se encuentre en el rango por ejemplo  [A-Z]
[^ conjunto o rango de caracteres]
El carácter buscado no tiene que encontrarse en esta lista

Si es que se desea buscar los caracteres especiales  como % _ [ ]  ^   dentro de una cadena se tiene que utilizar la palabra ESCAPE  por ejemplo like '/%%'escape '/'

El cual busca a cadena de caracteres que inicien con %.

jueves, 24 de noviembre de 2016

Historial de correos enviados por Servidor SQL

Esta pequeña consulta te puede ayudar  a obtener los email enviados por el servidor de base de datos, esto es muy util para llevar un control de los correos o si se estan cumpliendo ciertas reglas..

select
mailitem_id,
destinatario=recipients
,CC=copy_recipients
,CCO=blind_copy_recipients
,Asunto=subject
,Cuerpo=body
,Formato=body_format
,Adjunto=file_attachments
,UsuarioEjecuta=send_request_user
,FechaSolicitud=send_request_date
,sent_date
from msdb.dbo.sysmail_allitems
where  subject like '%descober%'
order by mailitem_id


SQL SERVER HISTORIAL DE BACKUP Y RESTORE

Estuve revisando como poder obtener un listado de todas las copias de seguridad que realizo sobre las  base de datos para poder ayudarme con el inventario de backups, además quería saber en que fecha realice la restauración de una base de datos determinada en el ambiente de desarrollo y pruebas, pues siempre se hace la pregunta  ¿ De que fecha es la base de datos X?


Este script que arme te permite obtener los datos de los backups realizados, como el tamaño, duración del backup, el tipo  o donde se guardo el archivo

select
Base= b.database_name,
HoraInicio= b.backup_start_date
,Duracion=convert(varchar,dateadd(ms,DATEDIFF (ms, b.backup_start_date, b.backup_finish_date),'01/01/1900'),108)
,TamañoMB=convert(decimal(15,2), b.backup_size /1048576)
,case  b.type
when 'D' then 'Total'
when 'L' then 'Log'
when 'I' then 'Diferencial'
end as Tipo,
Usuario= b.user_name,
Servidor= b.server_name,
ModoRecuperación= b.recovery_model,
RutaDestino=f.physical_device_name ,
EsSoloCopia= b.is_copy_only
from msdb.dbo.backupset  b
inner join msdb.dbo.backupmediaset s on  b.media_set_id = s.media_set_id
inner join msdb.dbo.backupmediafamily f on s.media_set_id = f.media_set_id

Y para poder obtener el historial de restauraciones uso el siguiente script en el cual
obtiene en que fecha se ejecuto el backup y el archivo usado.

select
Base= b.database_name,
HoraRestauración=rh.restore_date
,TamañoMB=convert(decimal(15,2), b.backup_size /1048576)
,case  b.type
when 'D' then 'Total'
when 'L' then 'Log'
when 'I' then 'Diferencial'
end as Tipo,
Usuario=rh.user_name ,
ModoRecuperación= b.recovery_model,
RutaOrigen=f.physical_device_name ,
BaseDestino=rh.destination_database_name
from msdb.dbo.backupset  b
inner join msdb.dbo.backupmediaset s on  b.media_set_id = s.media_set_id
inner join msdb.dbo.backupmediafamily f on s.media_set_id = f.media_set_id
inner join msdb.dbo.restorehistory rh on  b.backup_set_id = rh.backup_set_id

sábado, 17 de septiembre de 2016

Fecha de instalación del Sistema Operativo

Cuando gestionas varias computadoras  a veces es necesario saber cuando se instaló el sistema operativo para un posible mantenimiento a la PC, para eso existe una sentencia muy simple que nos puede ayudar.
Solamente se debe  seguir los siguientes pasos:

  1. Ingresar a la consola CMD o Símbolo del Sistema ( Boton Windows +Tecla R) o ir  a inicio y buscar CMD)
  2. Escribir  wmic os get installdate
Nos mostrara la fecha en la que se instaló el sistema operativo, lo he probado en Windows 10 y Windows Server 2012.

lunes, 14 de diciembre de 2015

Error Cannot register the hard disk because a hard diskalready exist

Estuve moviendo  los discos duros virtuales de lugar entre las particiones de mi computadora, pues me faltaba algo de espacio para realizar algunos procesos, al momento de querer asignarle el nuevo lugar del disco virtual me apareció  el siguiente error
Fallo al abrir el archivo de imagen de disco D:\VirtualBox VMs\Server1\Server1.vdi.
Cannot register the hard disk 'D:\VirtualBox VMs\Server1\Server1.vdi' {ddaed120-3384-4c69-a2b6-7d4aa69dead2} because a hard disk 'C:\Server1\Server1.vdi' with UUID {ddaed120-3384-4c69-a2b6-7d4aa69dead2} already exists.
Código Resultado: E_INVALIDARG (0x80070057)
Componente: VirtualBoxWrap
Interfaz: IVirtualBox {0169423f-46b4-cde9-91af-1e9d5b6cd945}
Receptor RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

para solucionar este problema realicé los siguientes pasos

  1. primero entre  a configuración >Almacenamiento  de la maquina virtual para eliminar la conexión  y guarde los cambios,
  2.  Después fui a la opción Archivo> Administrador de medios virtuales, en esta ventana hay tres grupos Discos duros, Discos ópticos y Discos Flexibles,Entre a la opción por defecto  Discos duros y seleccione el disco  que había cambiado de lugar, en este caso Server1.vdi, luego presioné la opción Eliminar.
  3. Finalmente entre a configuración >Almacenamiento y agregue el disco duro que había movido de posición.
Después de estos pasos pude ingresar nuevamente a mi maquina virtual


sábado, 10 de octubre de 2015

Agregar disco duro a Windows Server 2012 en Virtual Box

Estas pruebas se realizaron en un “Oracle VM Virtualbox” y se generó debido a que necesitaba más espacio en mi maquina virtual para realizar ciertos procesos, para solucionar esto se agrego un nuevo disco virtual, el problema ocurrió cuando  mi maquina virtual no reconoce el nuevo disco,  para que pueda visualizarse como un disco normal al explorar el servidor seguí estos pasos.
Pasos
1.       Ir  “Administrador del Servidor”
2.       Seleccionar la opción “Servicios de archivos y de almacenamiento” que se encuentra en la parte de la izquierda
3.       Seleccionar Volúmenes >Discos y aparecerán los discos físicos que tiene el servidor.
4.        En el explorador de discos de la derecha  aparecen todos los discos que tiene la maquina virtual, el disco que tiene la columna partición “Desconocido” es el que falta agregar  al sistema operativo.
5.       Presionar click derecho sobre este disco  y seleccionar “Nuevo Volumen”
6.       Aparece la ventana “Asistente para nuevo volumen”
7.       En el paso “Antes de comenzar” solo presionar el botón siguiente.
8.       En el paso “Servidor y disco” dejar todo por defecto y presionar siguiente, aparecerá un mensaje y presionar “Aceptar”
9.       El siguiente paso es “Tamaño” dejar por defecto” si se desea tener todo el espacio del disco habilitado. 
10.   Paso “Letra de unidad o carpeta”  se selecciona que letra debería tener este disco para que pueda agregarse al sistema operativo.
 11.   “configuración del Sistema”   dejar todo predeterminado pues NTFS  es el sistema de archivos  que mejor se adapta a entornos Windows.
 12.   Finalmente la ventana confirmación en la cual muestra un resumen de todos los pasos realizados, aquí presionar el botón “Crear”, empezará a procesar  lo solicitado  y presionar el botón “Cerrar”,
 Ahora podrá visualizarse el nuevo disco en el explorador  de archivos
Administrador del Servidor