declare @feIni datetime ='2022-02-21'
Tips de desarrollo SQL SERVER, ASP.NET, C#, MVVM, WCF, WPF, XAMARIN, AZURE etc
lunes, 21 de febrero de 2022
Calcular fechas entre rango de fechas sql server
martes, 4 de enero de 2022
Crear un esquema SQL
Crea un esquema en la base de datos actual. La transacción
CREATE SCHEMA también puede crear tablas y vistas dentro del nuevo esquema y
establecer permisos GRANT, DENY o REVOKE en esos objetos.
- En el Explorador de objetos, conéctese a una instancia de Motor de base de datos.
- En la barra Estándar, haga clic en Nueva consulta.
lunes, 3 de enero de 2022
Sql Server Eliminar registros de una tabla de forma rapida
En algunas ocasiones es necesario borrar muchos registros de una tabla, pero al tener índices o al estar en uso el borrado puede demorar muchísimo tiempo.
con esta solución va borrando por partes haciendo un ciclo, se detiene cuando termina de borrar.
martes, 28 de diciembre de 2021
Cambiar contraseña de usuario SQL Azure
El siguiente ejemplo cambia la contraseña de inicio de
sesión UsuarioSQL una contraseña segura.
Cambiar la contraseña de un inicio de sesión al iniciar
sesión como inicio de sesión
Si está intentando cambiar la contraseña del inicio de
sesión con el que está conectado actualmente y no tiene el ALTER ANY
LOGIN permiso, debe especificar la OLD_PASSWORD opción.
lunes, 27 de diciembre de 2021
SQL Server INSERTAR varias filas
Para agregar varias filas a una tabla a la vez, utilice la siguiente forma de INSERT
declaración:
En esta sintaxis, en lugar de utilizar una única lista de valores, utiliza varias listas de valores separados por comas para la inserción.
El número de filas que puede insertar a la vez es de 1000 filas utilizando esta forma de INSERT
declaración. Si desea insertar más filas, debería considerar el uso de varias INSERT
declaraciones BULK INSERT
o una tabla derivada.
Tenga en cuenta que esta INSERT
sintaxis de filas múltiples solo se admite en SQL Server 2008 o posterior.
jueves, 23 de diciembre de 2021
Uso de WITH (NOLOCK) SQL SERVER
La sugerencia WITH (nolock) es un comando explícito dirigido a una tabla o vista específica que se usa para establecer el nivel de aislamiento de la transacción con respecto a la tabla o tablas dentro de una vista para una consulta. Una vez emitidos, los bloqueos no se utilizarán contra los datos dentro de la tabla. La ventaja de esto es que no hay posibilidad de que se produzca un punto muerto con cualquier otra consulta que se ejecute en la mesa. La otra ventaja indirecta es que se utilizará menos memoria para mantener bloqueos contra esos datos.
La configuración de nolock anterior es explícita para la tabla contra la que se establece. Para establecer el valor globalmente para el alcance de la conexión, consulte ESTABLECER EL NIVEL DE AISLAMIENTO DE LA TRANSACCIÓN
Ventajas:
- Los bloqueos mutuos no ocurrirán frente a otras consultas que se ejecutan contra los mismos datos
- Se utiliza menos memoria debido a la falta de bloqueo de nivel de fila, página o rango
- Por lo general, permite una simultaneidad mucho mayor debido a una menor huella
Desventajas:
- Los datos no comprometidos se pueden leer dando lugar a lecturas sucias
- Las sugerencias explícitas contra una tabla son generalmente una mala práctica
Uso
En la mayoría de los lugares en los que he trabajado, con (nolock) ha sido una práctica generalmente aceptada en las áreas específicas del sistema que no son sensibles a la falta de sincronización de los datos. Sin embargo, es importante saber dónde pueden salir mal las cosas. La señal de alerta más grande que se me ocurre para no usar NOLOCK sería un sistema que usa transacciones explícitas (BEGIN TRAN ..END TRAN) o un uso intensivo de activadores. Varias declaraciones ejecutadas dentro de una transacción experimentan un retraso de tiempo en sus operaciones INSERT / UPDATE / DELETE, sin embargo, los cambios se confirman de una vez en COMMIT. Las declaraciones que consultan los datos modificados utilizando el nivel de aislamiento READ COMMITTED no podrán ver estos cambios hasta que se confirmen, mientras que READ UNCOMMITTED (NOLOCK) verá los cambios inmediatamente independientemente de cuándo se produzca la confirmación.
Crear sp_who3 para mejor búsqueda de bloqueos, un mejor sp_who3
El siguiente sp salio del blog
https://sqlserverplanet.com/dba/a-better-sp_who2-using-dmvs-sp_who3
El siguiente código genera la misma información que se encuentra en sp_who2, junto con información adicional de solución de problemas. También contiene la instrucción SQL que se está ejecutando, por lo que en lugar de tener que ejecutar un DBCC INPUTBUFFER por separado, la instrucción que se está ejecutando se muestra en los resultados.
A diferencia de sp_who2, este sp_who3 personalizado solo muestra las sesiones que tienen una solicitud en ejecución actual.
Lo que también se muestra son las lecturas y escrituras del comando actual, junto con el número de lecturas y escrituras de todo el SPID. También muestra el protocolo que se está utilizando (TCP, NamedPipes o Shared Memory).
El bloqueador de clientes potenciales a continuación se mostrará en la columna BlkBy como -1.
Se ejecuta:
SP_WHO3