lunes, 30 de diciembre de 2013

Leap Year function in Sql Server

Here is a function to determine if a year is a leap year in Sql Server.

The rules to determine a leap year are:

  • Must be divisible by 4.
  • Must NOT be divisible by 100.
  • Must be divisible by 400.
CREATE FUNCTION isLeapYear(
 @date DATETIME
) RETURNS BIT 
AS
BEGIN
 DECLARE 
  @year INT,
  @isLeapYear BIT
  
 SET @year = YEAR(@date)

 IF @year % 4 = 0 AND (@year % 100 <> 0 OR @year % 400 = 0)
 BEGIN
  SET @isLeapYear = 1
 END
 ELSE
 BEGIN
  SET @isLeapYear = 0
 END 

 RETURN @isLeapYear
END

Introducción a Programando Chácharas

Estimados lectores, les doy la bienvenida a Programando Chácharas; un sitio dedicadoa cubrir temas básicos sobre los aspectos de la programación a

Activar xp_cmdshell en Sql server 2005 - 2008

El procedimiento xp_cmdshell sirve para ejecutar comandos de DOS desde SQL Server.

Se preguntarán para que me sirve ejecutar comandos DOS desde Sql Server. Pues a veces es util crear directorios, leer su contenido o copiar archivos, cuando no se tiene acceso directo o de consola al servidor en el que está instalado Sql Server.

El comando viene desactivado porque representa un hueco de seguridad que puede ser usado en nuestra contra, pero hay veces que es útil saber de su existencia y usarlo para salir del paso.

Para habilitar su uso se requiere ser administrador de la base de datos. Estos son los comandos:

USE master;

GO

EXECUTE SP_CONFIGURE 'show advanced options', 1
RECONFIGURE WITH OVERRIDE

GO
 
EXECUTE SP_CONFIGURE 'xp_cmdshell', '1'
RECONFIGURE WITH OVERRIDE

GO

EXECUTE SP_CONFIGURE 'show advanced options', 0
RECONFIGURE WITH OVERRIDE

GO

Para deshabilitarlo:
USE master;

GO

EXECUTE SP_CONFIGURE 'show advanced options', 1
RECONFIGURE WITH OVERRIDE

GO
 
EXECUTE SP_CONFIGURE 'xp_cmdshell', '0'
RECONFIGURE WITH OVERRIDE

GO

EXECUTE SP_CONFIGURE 'show advanced options', 0
RECONFIGURE WITH OVERRIDE

GO
Para usarlo:
EXECUTE master.dbo.xp_cmdshell 'dir c:\'