Archivo

Entradas Etiquetadas ‘T-Sql’

Cuándo utilizar SET vs SELECT al asignar valores a las variables en SQL Server

domingo, 17 de marzo de 2024 5 comentarios

SET y SELECT pueden ser usados para asignar valores a las variables a través de T-SQL. Ambos cumplen su tarea, pero en algunos casos se pueden producir resultados inesperados. En este artículo menciono detalles sobre las consideraciones para elegir entre los métodos SET y SELECT al asignar un valor a una variable.

En la mayoría de los casos SET y SELECT pueden ser utilizados alternativamente sin ningún efecto.
Leer más…

Log personalizado de una transacción

sábado, 2 de marzo de 2024 Sin comentarios

Tienes idea!. Las operaciones con variables de tablas no se pueden deshacer. Solo llenando tu log desde la variable de tabla puedes llenar hasta que punto se quedo tu transaccion. Por su puesto, tienes que recordar, que todas las entradas que preceden en el log al error fueron deshechas (rollbak). Si corriges el error de tiempo de ejecucion en la linea 26, la transaccion es confirmada (commit) y la vida continua.
Leer más…

Recuperando datos aleatorios de SQL Server con TABLESAMPLE

sábado, 2 de marzo de 2024 1 comentario

Este truco es parecido tanto a la función RAND () como a la función NEWID(). Ambos métodos son útiles, pero un problema con estos, es que dependiendo de cómo los usas puedes terminar leyendo toda la tabla entera para conseguir una distribución aleatoria de los datos. Lo bueno de esto es que estás casi seguro de que obtendrás un conjunto de registros totalmente aleatorio cada vez. Debido a la potencial sobrecarga con la lectura a través de toda la tabla ¿Existen otros métodos para recuperar datos de forma aleatoria?

Leer más…

Base de datos contiene transacciones diferidas

miércoles, 28 de febrero de 2024 2 comentarios

Te ha sucedió que estas realizando algún proceso sobre una base de datos y por circunstancias casuales el servidor termina reiniciándose. Todo está normal hasta que te das cuenta que tu base de datos sigue por un buen tiempo en el estado «en recuperación», y cuando intentas realizar cualquier operación ocurren bloqueos o bien te arroja el siguiente error:

Check statement aborted.  Database contains deferred transactions.

¿Qué podemos hacer para solucionar este problema?

Leer más…

Fechas del calendario

lunes, 26 de febrero de 2024 1 comentario

Con lo años he tenido algunos de los mas extraños y complejos requerimientos de consultas y reportes que te puedas imaginar.
Los más dificiles suelen implicar algun tipo de regla de negocio extraña o requerimiento que incluyen parametros de fechas, logica, rangos, etc. He puesto este código junto con el fin de precalcular muchos elementos de fechas caracterizadas y ser capaz de determinar rapidamente varios valores y caracteristicas de las fechas sin necesidad de romperce la cabeza cada vez que las cosas se ponen dificiles.
Leer más…

Cambia la secuencia de intercalación de todos los campos en una base de datos

miércoles, 21 de febrero de 2024 2 comentarios

Cuando tienes servidores SQL Server con la configuración de intercalación diferente, tus bases de datos pueden ser diferentes en estos servidores, cuando no se especifique la intercalación de manera explícita. Para solucionar esto, es necesario modificar todos los campos con una secuencia de intercalación diferente. Tienes que hacer esto manualmente, mediante la apertura de cada tabla en el Administrador corporativo del SQL, revisar cada columna, y cambiar la secuencia de intercalación. Es innecesario decir que esta es una tarea tediosa.
Leer más…

Sleep en Script T-SQL

lunes, 5 de febrero de 2024 Sin comentarios

Digamos que deseas esperar durante 10 segundos o hasta un determinado momento antes de proseguir adelante en un script. Este es el Transact SQL a utilizar:

WAITFOR Delay '000: 00:10 '

Usa sp_send_dbmail para enviar múltiples archivos adjuntos

sábado, 3 de febrero de 2024 1 comentario

He encontrado algo interesante, si alguna vez deseas enviar varios informes o archivos utilizando sp_send_dbmail.
Tienes que establecer primero la ROWCOUNT en 0 (cero).
No puede haber un espacio después del punto y coma que separa la ruta completa de los informes.

SET ROWCOUNT 0 
EXEC msdb.dbo.sp_send_dbmail
@profile_name     = 'Your_Server_Profile',
@recipients       = 'recipient.1@xyz.com; recipient.2@xyz.com',
@body             = 'Reports 1 and 2 are attached',
@file_attachments = 'C:\Report Folder\Report1.TXT;C:\Report Folder\Report2.TXT',
@subject          = 'Reports 1 and 2 are attached' ;

Espero sea de utilidad!.

Objeto Explore

viernes, 2 de febrero de 2024 Sin comentarios

USO

En primer lugar tienes que ejecutar el script que esta al final de este artículo en la base de datos donde deseas crear este procedimiento.

Entonces, puedes ejecutar el procedimiento almacenado con la siguiente declaración:

EXEC sp_ObjectExplore 'Nombre_BasedeDatos.esquema.nombreTabla'

No es necesario proporcionar Nombre_BasedeDatos y el esquema (por ejemplo: dbo) cuando la tabla está en la misma base de datos que el procedimiento.

Si deseas métricas adicionales sobre la distribución de todas las variables numéricas, ejecútalo con el parámetro de @distribución=’yes’.
Leer más…

Verificador de los miembros de grupos de Windows

lunes, 8 de enero de 2024 Sin comentarios

Un script para revelar que los inicios de sesión tienen acceso al servidor SQL a través de los grupos de Windows.

Si utiliza autenticación de Windows y tiene grupos de Windows como inicios de sesión este script te puede ayudar.
Revela los miembros de los grupos de Windows y sus permisos de servidor.

Esto es especialmente útil si no eres el administrador de red o no tienes acceso a las herramientas del Active Directory.

Espero que ayude a alguien…
Leer más…

Pagina 1 de 212»Top Footer