lunes, 19 de marzo de 2012

Valor por omisión para una columna de tipo Fecha en MySQL

Bueno en Microsoft SQL Server estamos acostumbrados a asignar un valor por omisión para un campo de una tabla de tipo DateTime utilizando la función getDate(), pero en MySQL el asunto es algo distinto, en pocas palabras, el campo debe ser de tipo: TIMESTAMP y el valor por omisión debe ser: CURRENT_TIMESTAMP.

Ejemplo:

CREATE TABLE tbPrueba(
    campo1 VARCHAR(32),
    campo2 TIMESTAMP default CURRENT_TIMESTAMP
)

Script para FullBackup en SQL Server 2008

DECLARE @dia nvarchar(10)
SET @dia = CONVERT( nvarchar(10), getDate(), 20 )
DECLARE @strSQL nVarchar(MAX) = 'BACKUP DATABASE [miBaseDatos] TO  DISK = N''C:\miBaseDatos\BackUps\miBaseDatos bkFull ' + @dia + '.bak'' WITH NOFORMAT, NOINIT,  NAME = N''miBaseDatos-Full Database Backup'', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10, CHECKSUM'
exec( @strSQL )

declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'miBaseDatos' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'miBaseDatos' )
if @backupSetId is null begin raiserror(N'Verify failed. Backup information for database ''miBaseDatos'' not found.', 16, 1) end

-- Verificar el BK! Importante!
SET @strSQL = 'RESTORE VERIFYONLY FROM  DISK = N''C:\miBaseDatos\BackUps\miBaseDatos bkFull ' + @dia + '.bak'' WITH  FILE = '+ CAST( @backupSetId as nVarchar(MAX) ) +',  NOUNLOAD,  NOREWIND'
exec( @strSQL )