sábado, 30 de noviembre de 2024
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…
jueves, 28 de noviembre de 2024
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…
domingo, 17 de noviembre de 2024
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…
viernes, 8 de noviembre de 2024
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…
martes, 29 de octubre de 2024
Tienes algunos problemas con SQL Server. De vez en cuando tienes períodos en los cuales incluso la ejecución de un simple SELECT demora más de un minuto. Durante este período, el uso de CPU y memoria en el servidor tienen una apariencia normal. Haz realizado algún control básico sobre el servidor utilizando el monitor de rendimiento, pero con esto no se ha descubierto nada y ya no tienes más ideas. ¿Cuál sería el siguiente paso en el diagnóstico del problema?
Te pones a revisar los procesos que están corriendo en el servidor SQL Server y ves que la mayoría tiene un tipo de espera CXPACKET.
Leer más…
martes, 29 de octubre de 2024
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 '
domingo, 15 de septiembre de 2024
Dos de las mejores adiciones al T-SQL en SQL Server 2005 son las expresiones de tabla común (CTE), y la función Row_number (). En este artículo vamos a ver cómo se pueden utilizar estas dos características juntas para proporcionar una solución elegante a un problema histórico.
En primer lugar daremos una mirada muy rápida en cada uno de ellos.
Leer más…
jueves, 8 de agosto de 2024
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…
jueves, 9 de mayo de 2024
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!.