Comprobar si un email es correcto

¿como comprobar que la dirección de correo electrónico o e-mail ha sido digitado correctamente?

Si es real o no el e-mail, es imposible saberlo, pero por lo menos podemos descubrir si el usuario ha tecleado algo similar a una dirección de correo, si por lo menos tiene dentro el símbolo de la arroba ('@').

Declare @DirecionDeCorreo varchar(100)
SET @DirecionDeCorreo = 'test@xx.com'
If NOT (@DirecionDeCorreo LIKE '[^.@]%[^.@]@[^.@]%[^.@].[^.@]%[^.@]' OR @UserEmail LIKE '%@%@%')
Begin
Print ‘error’
End

Podemos adaptarlo, para colocarlo en una función o procedmiento almacenado.

Script para eliminar registros o filas duplicadas

Generalmente, cuando importamos datos a una tabla podemos llegar a tener algunos registros duplicados. El problema es como deshacernos de ellos, sin revisar uno por uno los registros o filas, que en algunos casos pueden pasar de las decenas de miles.

Con el siguiente script puede ser más sencillo (hay que adaptarlo segun la tabla):

/*******************************************************************/
/* Script para eliminar registros duplicados de tabla Empleados */
Declare @id int,
@name varchar (50),
@cnt int,
@salary numeric

Declare getallrecords cursor local static For
Select count (1), id, name, salary
from employee (nolock)
group by id, name,salary having count(1)>1

Open getallrecords

Fetch next from getallrecords into @cnt,@id,@name,@salary
--cursor para chequear los otros registros
While @@fetch_status=0
Begin
Set @cnt= @cnt-1
Set rowcount @cnt

-- eliminar los registros duplicados. Observa que todos los campos son mencionados -- en la condicion
Delete from employee where id=@id and name=@name
and salary=@salary

Set rowcount 0

Fetch next from getallrecords into @cnt,@id,@name,@salary
End

Close getallrecords
Deallocate getallrecords

*******************************************************************

Antes que todo hay que realizar una copia de seguridad, para darnos cuenta como trabaja el script. Lo recomiendo, y antes de ejecutarlo contra datos importantes, pruebalo con una tabla de prueba, no me responsabilizo por pérdida de datos importantes.

Limpiar conexiones no utilizadas (Script)

Este script ActiveX corre en el diseñador de DTS y limpiará las conexiones no utilizadas.

Esto permite renombrar las conexión, seleccionando Nueva Conexión y tipeando un nuevo nombre.

También permite copiar y pegar conexiones para renombrarlas.

Luego puedes limpiar las conexiones abandonadas cuando el desarrollo este completo.




'**********************************************************************
'* Script ActiveX
'**********************************************************************
'* Limpiar conexiones no utilizadas
'**********************************************************************
'* ----------------------------------------
'* Descripcion:
'* Este script realiza un ciclo a traves de cada conexion en un paquete y la libera '* si no esta siendo utilizada.
'* ----------------------------------------
'* Uso:
'* 1. Agregar una tarea a un paquete DTS.
'* 2. Deshabilita esta tarea propiedades del flujo de trabajo, de modo que no se
'* ejecute con el paquete.
'* 3. Copia este script en la tarea ActiveX.
'* 5. Realiza una copia de seguridad del paquete. (No olvidar este paso)
'* 6. Guarda el paquete. (No olvidar este paso)
'* 7. Ejecutar el script ActiveX en el diseñador DTS, guardar, y cerrar el paquete.
'*-------------------------------------------------------------------------------------
'* Nota:
'* - Este script no debe ser ejecutado sin supervisión.
'* - No editar el script en Propiedades del Tarea ActiveX.
'* - Editar como un archivo .vbs en, y depura scripts el el Microsoft Script Editor.
'-------------------------------------------------------------------------------------
Function Main()
On Error Resume Next
Stop
Dim loPackage
Dim loConnections
Dim loConnection
Dim loTasks
Dim loTask
Dim loProperties
Dim loProperty
Dim lbConnectionUsed
Set loPackage = DTSGlobalVariables.Parent
Set loConnections = loPackage.Connections
Set loTasks = loPackage.Tasks
' Reiniciar despues de cambiar de coleccion
Do
' Loop Through Connections
For Each loConnection In loConnections
lbConnectionUsed = False
' Loop Through Tasks
For Each loTask in loTasks
Set loProperties = loTask.Properties
' Loop Through Properties
For Each loProperty in loProperties
If Instr(loProperty.Name, "ConnectionID") Then
If loProperty = loConnection.ID Then
lbConnectionUsed = True
Exit For
End If
End If
Next
If lbConnectionUsed = True Then
Exit For
End If
Next
If lbConnectionUsed = False Then
loConnections.Remove loConnection.Name
Exit For
End if
Next
If lbConnectionUsed = True Then
Exit Do
End If
Loop
Set loPackage = Nothing
Set loConnections = Nothing
Set loConnection = Nothing
Set loTasks = Nothing
Set loTask = Nothing
Main = DTSTaskExecResult_Success
End Function