Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

En este tutorial, analizaremos las tablas y vistas temporales de SQL . Estos dos pueden ser útiles si desea obtener un conjunto específico de datos de una tabla física para realizar pruebas y depuración. También hablaremos sobre los 2 tipos de tablas temporales y sus diferencias.

Con las tablas y vistas temporales de SQL, puede manipular libremente el conjunto de datos usando múltiples comandos sin consultarlo repetidamente, ya que ya está almacenado en una tabla separada.

Aunque estos dos funcionan de manera similar, debe tomar nota de sus diferencias. Eso lo ayudará a decidir el mejor método que puede usar en una situación específica.

Según el nombre en sí, las tablas temporales se utilizan para almacenar datos temporalmente en una sesión.

También podemos hacer múltiples operaciones sobre ellos al igual que en una mesa física . Imagine que tiene un comando SQL que es muy largo. Simplemente puede poner eso en una tabla temporal y comenzar a depurar o solucionar los errores sin afectar la consulta original. Además, las tablas temporales son poderosas y se usan con frecuencia en SQL.

Tabla de contenido

Dos tipos de tablas temporales en SQL

Hay 2 tipos de tablas temporales en SQL. Estas son las tablas temporales locales y globales.

Las tablas temporales locales solo existen en una sesión en la que se crearon. No podremos acceder a esta tabla en otras sesiones. Debido a esto, las tablas temporales locales ya no existirán una vez que se cierre la sesión en la que se crearon.

Por el contrario, las tablas temporales globales son accesibles en todas las sesiones cuando se crean. Pero una vez que se cierren todas las sesiones, ya no existirá y ya no será accesible.

Tenga en cuenta que simplemente puede identificar qué tipo de tabla temporal se está utilizando en una consulta marcando el símbolo " # " para local y " ## " para la tabla temporal global.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Las tablas temporales locales generalmente comienzan con " # " en su nombre de tabla.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Por otro lado, las tablas temporales globales comienzan con " ## " antes del nombre de la tabla.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Además, si desea crear rápidamente cualquier tabla, puede seguir el comando: SELECT * INTO #customers FROM dbo.courses como ejemplo.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Este comando creará una nueva tabla temporal llamada #clientes con todos los datos de la tabla dbo.courses .

Vistas en Microsoft SQL Server Management Studio

Analicemos ahora las vistas de SQL con este comando de muestra.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Digamos, por ejemplo, que no queremos ejecutar repetidamente un comando como este. Simplemente puede ponerlo en una vista siguiendo el comando a continuación.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Crear una vista es similar a crear tablas. Usar esto nos permitirá ejecutar la consulta que ingresamos al seleccionar el nombre de la vista que hemos creado. En este caso, es CustomersbyYear_v .

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Es importante tener en cuenta que las vistas son diferentes de las tablas temporales. Esto se debe a que las vistas son visibles en su base de datos como una tabla física a menos que la elimine. Además, las vistas no almacenan ningún dato o valor.

En su lugar, solo representará el comando que ingresó justo después del comando CREAR VISTA . También puede ejecutar cualquier operación de tabla en las vistas.

Lo que es más importante, podemos identificar fácilmente las vistas, ya que generalmente se representan poniendo "v" al principio o al final del nombre de la vista.

Creación de tablas y vistas temporales en SQL

Para este ejemplo, tengo esta consulta que combinará y mostrará los registros de Sales.SalesOrderHeader y Sales.Customer C después de ejecutarla.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Creación de tablas temporales locales en SQL

Imagine que ha escrito una consulta de 200 líneas y necesita depurar y realizar ciertas operaciones en ella. No puede editar directamente la consulta , ya que podría causar más errores durante el proceso.

En ese caso, usando el ejemplo anterior, vamos a crear una tabla temporal local agregando el comando “ INTO #test_local ” antes del comando FROM.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Una vez que ejecutemos este comando, #test_local ahora contendrá los registros combinados de Sales.SalesOrderHeader y Sales.Customer C . Como resultado, esto es lo que verá cuando seleccione la tabla #test_local .

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Después de eso, ahora podemos realizar cualquier operación en la tabla #test_local . Seleccionaremos todos los registros de #test_local y luego cambiaremos el orden de los registros por CustomerID usando el siguiente comando. 

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Como resultado, los registros ahora se ordenan por su CustomerID. Pero como usamos una tabla temporal local, no podemos acceder ni usar la tabla #test_local en una sesión diferente. El siguiente ejemplo muestra lo que sucederá si intentamos acceder a #test_local en SQLQuery2.sql .

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Basado en el ejemplo anterior, al seleccionar #test_local , solo mostraba un mensaje de error. Esto se debe a que la tabla #test_local solo existe en la sesión en la que se creó, que es SQLQuery1.sql .

Creación de tablas temporales globales en SQL

A continuación, usaremos la misma consulta que usamos en #test_local . Pero esta vez, usaremos una global .

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Ahora, si seleccionamos ##test_global y ordenamos los registros por CustomerID, mostrará el mismo resultado que teníamos en #test_local ya que usamos la misma consulta. 

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Después de eso, intentaremos acceder a la tabla ##test_global en una sesión diferente seleccionándola. Esto funciona a la perfección ya que estamos utilizando una tabla temporal global.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

En este punto, destacamos la diferencia entre tablas temporales locales y globales.

Recuerde que las tablas temporales locales solo son accesibles en una sesión en la que se crearon . Una vez que cierres esa sesión, ya no existirá.

Por otro lado, las tablas temporales globales son visibles para todas las sesiones , a menos que cierre todas las sesiones activas o la propia aplicación.

Creación de vistas en SQL

Ahora vamos a crear una vista. En este ejemplo, tenemos una consulta existente como esta.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Podemos comenzar a crear una vista agregando el comando CREAR VISTA a esa consulta.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Al ejecutar el comando, se creará una vista en la base de datos en la que estamos trabajando. En este caso, es AdventureWorks2012 .

También deberíamos ver el dbo.CustomerView_v en la carpeta Vistas después de actualizarlo. Para actualizar la carpeta Vistas, haga clic derecho sobre ella y luego seleccione Actualizar .

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Haga clic en el ícono + a la derecha de la carpeta Vistas y el dbo.CustomerView_v estará visible.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Puede abrir esta vista haciendo clic con el botón derecho en dbo.CustomerView_v y luego elija Seleccionar las 1000 filas principales de las opciones. Esto mostrará 1000 registros en esa vista .

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Después de esto, ahora podemos usar dbo.CustomerView_v y realizar cualquier operación en él como si fuera una tabla. Por ejemplo, queremos seleccionar los registros con SalesOrderID mayor que 50000 en dbo.CustomerView_v . En este caso, usaremos el siguiente comando.

Vistas y tablas temporales de SQL para usuarios de LuckyTemplates

Ahora podemos ejecutar una operación en la vista que hemos creado.

Conclusión

En resumen, hemos aprendido los 2 tipos de tablas temporales junto con sus diferencias y por qué necesitamos usarlas. Además, hemos discutido que las tablas temporales sirven como una forma de corregir errores en sus consultas sin dañar la consulta real.

Tenga en cuenta que las tablas temporales solo son visibles para las sesiones en las que se crearon. Por lo tanto, dejará de existir una vez que hayamos cerrado las sesiones activas o la propia aplicación.

También hemos aprendido que las vistas no almacenan datos ni registros. Solo muestra resultados basados ​​en la consulta que desea procesar. Estas vistas se almacenan en nuestra base de datos una vez que las creamos. 

Al aprender estos dos, ahora tiene la capacidad de ejecutar rápidamente comandos largos y modificar grandes porciones de conjuntos de datos con facilidad.

Mis mejores deseos,

Hafiz


Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.