miércoles, 7 de diciembre de 2011

Cómo mostrar los procedimientos almacenados y/o las vistas de una Base de Datos con todo y el código de cada uno de ell@s:

EXECUTE sp_MSforeachtable
@command1 = 'sp_helptext [?];',
@whereand = 'and OBJECTPROPERTY(o.id, N''IsUserTable'') = 0 or OBJECTPROPERTY(o.id, N''IsProcedure'') = 1'

 

  • IsUserTable: permite indicar si deseamos mostrar las tablas del sistema y las de usuario utilizamos el valor 0, si solo deseamos mostrar las de usuario se le indica 1.
  • IsView: si deseamos desplegar las vistas (1).
  • IsProcedure: si deseamos desplegar los procedimientos almacenados (1).

¿Cómo listar las tablas existentes de una BD, la cantidad de registros y el espacio ocupado?

Este script nos permite listar todas las tablas de una Base de Datos y el espacio que ocupan.

EXECUTE sp_MSforeachtable 'EXECUTE sp_spaceused [?];';
 

Este, nos muestra la misma información pero ordenada y tabulada, este es más completo:

EXECUTE sp_MSforeachtable
@precommand = 'CREATE TABLE ##Results( 

    name nvarchar(128),
    rows char(11),
    reserved varchar(50),
    data varchar(50),
    index_size varchar(50),
    unused varchar(50)
)',
@command1 = 'UPDATE STATISTICS ?;',
@command2 = 'INSERT INTO ##Results EXECUTE sp_spaceused [?];',
@whereand = 'or OBJECTPROPERTY(o.id, N''IsSystemTable'') = 1',
@postcommand = 'SELECT * FROM ##Results; DROP TABLE ##Results'


Información de MSSQLTips por Arshad Ali.

¿Cómo listar las tablas existentes de una BD y cuántos registros tienen c/u?

Este script nos permite listar todas las tablas de una Base de Datos y la cantidad de filas que contiene cada una.

EXEC sp_MSForEachTable 'SELECT ''?'' as TableName, COUNT(1) as TotalRows FROM ? WITH(NOLOCK)'

Información de MSSQLTips por Arshad Ali.

martes, 29 de noviembre de 2011

Cómo obtener la configuración, la instalación y la información de volcado de memoria en SQL Server 2012


Nuevamente les comparto un tip del sitio MSSQL TIPS publicado por Ashish Kumar Mehta, el cual muestra unas nuevas DMVs del M. SQL Server 2012 y que les puede ser de utilidad para crear JOBs para el monitoreo del estado de sus servidores.

Problema

SQL Server 2012 con nombre en código Denali, tiene un montón de nuevas características para ofrecer. El nuevo conjunto de características incluye nuevas DMV (Dynamic Management Views) que pueden devolver la configuración de SQL Server, la instalación y la información de volcado de memoria relacionados.

Solución

En este tip se discutirá la manera de utilizar algunas DMVs que son nuevas en SQL Server 2012. Es importante tener en cuenta que con cada reinicio del servicio de SQL Server los datos de estas vistas de administración dinámica se reinician también.
  • sys.dm_server_memory_dumps
  • sys.dm_server_services
  • sys.dm_server_registry

Usando sys.dm_server_memory_dumps:

Devuelve una fila por cada archivo de volcado de memoria generado por el motor de base de datos SQL Server. Si al ejecutar esta DMV obtienes filas como resultado.... entonces usted debe alertar a un DBA para que pueda comprobar lo que causó la volcados de memoria que podría conducir a la corrupción de datos. También te recomiendo que lea este artículo que se explica cómo buscar las consultas que se estaban ejecutando cuando se generó el volcado de memoria.
  • SELECT * FROM sys.dm_server_memory_dumps

Usando sys.dm_server_services:

Devuelve información relacionada con: el tipo de inicio, el estado de ejecución, la última vez que se inició, etc, para los servicios de Sql Server, Full-Text y el Agente, de la instancia actual de SQL Server.
  • SELECT * FROM sys.dm_server_services:

Usando sys.dm_server_registry:

Devuelve la información de la Configuración del SQL Server y la información de instalación que esta almacenada en el registro de Windows. Esta DMV es muy útil ya que puede darte rápidamente información relevante referente a la versión actual, la dirección física de la Base de Datos Master, los archivos del Log de Errores, etc.
  • SELECT * FROM sys.dm_server_registry

lunes, 28 de noviembre de 2011

Procedimiento almacenado en SQL Server para generar contraseñas aleatorias

Este blog es una traducción de un artículo publicado en mssqltips por Brent Shaub, que permite crear un procedimiento almacenado que genera contraseñas aleatorias.

Problema

SQL Server se utiliza para apoyar muchas aplicaciones y una de esas características es el almacenamiento de contraseñas. A veces es necesario restablecer una contraseña con una contraseña temporal o generar una contraseña aleatoria para un usuario nuevo. En este tip se desarrolla un procedimiento almacenado para generar contraseñas aleatorias que se pueden incorporar en sus aplicaciones.

Solución

El siguiente procedimiento almacenado crea cadenas de caracteres al azar basado en cuatro parámetros que configuran el resultado.


  1. LEN - especifica la longitud del resultado (obligatorio)
  2. MIN - indica el Código ASCII inicial (opcional: por omisión "48": que es el número cero)
  3. RANGE - determina el rango de cuántos caracteres ASCII se incluirán (opcional: por omisión "74" (48 + 74 = 122) donde 122 es "z" minúscula)
  4. EXCLUDE - un string de caracteres por excluir de la salida final (opcional: por omisión incluye cero, "O" mayúscula, estos signos de puntuación :;<=>?@[]`^\/)


Código

create proc [dbo].uspRandChars
   @len int,
   @min tinyint = 48,
   @range tinyint = 74,
   @exclude varchar(50) = '0:;<=>?@O[]`^\/',
   @output varchar(50) output
as
   declare @char char
   set @output = ''
   while @len > 0 begin
     select @char = char(round(rand() * @range + @min, 0))
     if charindex(@char, @exclude) = 0 begin
       set @output += @char
       set @len = @len - 1
     end

   end;
go

Ejemplos

declare @newpwd varchar(20)

-- all values between ASCII code 48 - 122 excluding defaults
exec [dbo].uspRandChars @len=8, @output=@newpwd out
select @newpwd

-- all lower case letters excluding o and l
exec [dbo].uspRandChars @len=10, @min=97, @range=25, @exclude='ol', @output=@newpwd out
select @newpwd

-- all upper case letters excluding O
exec [dbo].uspRandChars @len=12, @min=65, @range=25, @exclude='O', @output=@newpwd out
select @newpwd

-- all numbers between 0 and 9
exec [dbo].uspRandChars @len=14, @min=48, @range=9, @exclude='', @output=@newpwd out
select @newpwd

Resultados

2uR37gRq
--------------
qvffsvxzvd
--------------
IRTIFJHFFCKB
--------------
58739441336731

martes, 22 de noviembre de 2011

Encryptación a nivel de columna en SQL Server

Un artículo muy interesante y útil de MSSQL Tips indica como podemos encryptar la información de una columna en una tabla de SQL Server, por ejemplo para almacenar números de tarjetas de crédito, aquí se los dejo [click]

lunes, 24 de octubre de 2011

Aplicativos útiles y gratuitos

Los necesitamos y no sabemos que ahí están:
  • PDFCreator: impresora virtual que nos permite imprimir en un archivo pdf.
  • CCleaner: optimización y limpieza de Windows.
  • Defraggler: un desfragmentador de disco más eficiente.
  • Recuva: recuperador de archivos borrados.
  • Speccy: herramienta que permite obtener información del sistema.
  • GParted: un distro de Linux que te permite bootear con el y realizar cambios en las particiones de los discos con una interfaz muy agradable.
  • 7-Zip: para mi, uno de los mejores de su género, permite comprimir y descomprimir archivos, así como verificar la integridad de los mismos y esta disponible en arquitectura de 32 y 64btis.
  • Foxit Reader: una alternativa al Adobe Reader, que es muy liviano y aparte de eso es menos atacado por los Hackers. La interfaz es muy agradable.
  • FileZilla Client y Server: son aplicaciones que te permiten conectarte a servidores FTP o convertir tu PC en un servidor FTP de forma muy sencilla y rápida.
  • CloneVDI: permite clonar Discos Virtuales.
  • VLC: de los mejores reproductores de vídeos, lo recomiendo mucho.
  • Calibre: herramienta que te permite administrar libros digitales, convertirlos y sincronizarlos con casi todos los lectores de libros digitales más conocidos.
  • Freemake Video / Audio converter: son herramientas que te permiten convertir vídeo y audio en los formatos más conocidos y lo mejor de todo es que permite conversión de vídeo HD.
  • FreeStudio: suite de conversión de medios, muy bueno también.
  • VirtualBox: permite virtualizar PCs, es muy bueno, lo recomiendo.
  • MagicISO: permite virtualizar unidades DVD para montar imágenes de disco en distintos formatos (*.iso, *.cue, etc).
  • Daemon Tools Lite: es similar al MagicISO pero más estilizado y "pesado", éste permite Blu-ray.
  • Sigil: es un editor WYSIWYG (acrónimo de What You See Is What You Get, "lo que ves es lo que obtienes") de libros digitales.
  • ArgoUML: herramienta de modelado UML e incluye soporte para todos los estándar UML 1.4. Se ejecuta en cualquier plataforma Java y está disponible en diez idiomas. Permite ingeniería inversa de código java.
  • DrJava: es un entorno de desarrollo ligero para escribir programas Java. Está diseñado principalmente para los estudiantes, proporcionando una interfaz intuitiva y la capacidad de evaluar de forma interactiva el código de Java.
  • OpenOffice o LibreOffice: e utilizado desde la versión 1.1 de OpenOffice hasta la actual y nunca he tenido que utilizar Microsoft Office a excepción del Outlook por el trabajo; pero hay que ser realizastas, la aplicación para diseñar presentaciones esta muy, muy lejos de ser tan amigable y versátil como lo es el Powerpoint, a parte de eso todas las demás herramientas son muy completas y hasta tienen funcionalidades que el mismo Microsoft Office no tiene.
  • Firefox: navegador web que utilizo siempre, recomiendo agregar los complementos: NoScript, DownThemAll!, DownloadHelper y el diccionario de Español/España.
  • ThunderBird: es un cliente de correos electrónicos que también utilizo mucho en mi PC personal.
Bueno estos son algunos de los que me he acordado, cuando me acuerde de más los estaré actualizando.