Estimado @ Héctor, Cuando usamos las tablas temporales con # (particular) en los Store Procederes por defecto quedan aisladas y vigentes en el ciclo de vida de la ejecución del sp y vinculado a la conexión activa, luego se destruye. Solo si declaramos la tabla con ## (Global) requeriría un trato especial como el bloqueo. Saludos.
Pequeño aporte: *Al guardar en tablas temporales no estás haciendo crecer el transaction log ni el archivo de datos de ninguna base de datos de usuario (en la que muchas veces tampoco es como que exista muchísimo espacio disponible para operaciones intermedias). *Es buena prácitca de los DBA que los archivos del tempdb se almacenen en la o las unidades más rápidas del servidor, por lo que procesar datos ahí debería ser más rápido que si lo hicieras en otra base de datos almacenada tal vez en almacenamientos más lentos.
Hola, Héctor las tablas temporales le hubiesen servido mucho a un primo que tuvo que hacer a mano la revisión de los datos en una planilla excel . Podría haber exportado estos datos a una tabla de sqlserver y luego a haber limpiado los datos. Fue hace muchos años es cierto que ahora podría usar la librería pandas con Python. Gracias por su excelente contenido como siempre.
Hector, las temporales con un solo # no se superponen nunca con otras conexiones y viven mientras la conexion creadora exista. Por eso en la tempdb tiene un nombre que es muy largo. Puedes probar hacer dos ventanas y crear la misma tabla temporal sin que se interfieran, incluso con estructura distinta sin problemas. Esa es parte de la magia y el motivo de la existencia de las ## que son visibles desde otra conexión. Saludos
Si están así como lo he puesto claro que se superponen, en el video lo he mostrado. Cuando están en procedures el gestor les asigna un prefijo extra, pero en procedures.
No entre distintas conexiones, esto es, por ejemplo en una aplicación desktop donde cada cliente gestiona la conexión. El inconveniente sería quizás en una aplicación que está centralizada (como por ejemplo en el backend) donde una sola conexión le da servicio a más de un cliente.
Podrías hacer videos profundizar más sobre sql como las variables de tabla Algunos métodos de sql Ya que muchos como yo Tenemos la idea que saber las últimas tecnologías es importante, Cuando muchas veces en empresas muy grandes colocan toda la lógica en sql en los SP y no tanto en el lenguaje de programación(C#, php) Un saludo y buen video!
Hola Hector! soy muy fan de tu contenido, aprendo muchisimo con tus videos. El otro dia estaba viendo ejercicios de SQL en Hackerrank y me encontre con temas interesantes como la creacion de variables de tipo Tabla, podrias hacer un video sobre eso?. El ejercicio de Hackerrank donde lo ocupe se llama "Print Prime Numbers" en el cual tenias que sacar los numeros primos del 2 al 1000 pero de esta forma "2&3&5&7"
Resolví un caso con esta funcionalidad de SQL Server para limpiar un archivo csv, lo insertaba en una tabla temporal, después con Dapper lo mapeo a un objeto compuesto que me permite hacer el insert en otras tablas ya con la información "limpia"
ALGUIEN SABE COMO USAR ESTAS TABLAS EN VISUAL STUDIO CODE? NO PUEDO INSERTAR NI EN TABLAS TEMPORALES COMO # NI EN TABLAS TEMPORALES DE SISTEMA CON VARIABLES @ POR QUE SIMPLEMENTE ME DICE QUE LA VARIABLE NO AH SIDO DECLARADA O EN EL CASO DE LAS # ME DICE OBJETO INVALIDO PERO EN EL SQL SERVER EN CONSULTAS SI LAS PUEDO REALIZAR
bro, consulta tengo una tabla que tengo que filtrar por estado(afiliado, desafiliado, etc) quise hacerlo por tablas temporales, pero no tengo permisos para crear tablas temporales, tiene que mostrarse los clientes afiliados que no esten desafiliados(cabe mencionar que sale el mismo cliente cuando se afilio y se desafilio, asi que sale doble registro del mismo cliente, incluso más si lo hizo varias veces) alguna sugerencia para poder realizar está consulta?
En mysql he creado tablas temporales a partir de un select, por ejemplo Create temporary table ejemplo Select * from tabla_x No se si en sql server se pueda también
El único inconveniente que te pudieras encontrar es que solo infiere el tipo de datos y si por ejemplo en algunos tienes algún campo que fuera Decimal(X,Y) lo pueda tomar como dato flotante.
En sql server también la puedes crear como select * into #mitemporal from tabla_x o puedes usar una variable de tipo tabla como declare @mitabla table(ID int)
Hola Hector, , Buenas tardes, no se si estas muy ocupado , pero quería hacerte una pequeña consulta y supongo que con tu experiencia en programación pudieras aclarármela rápidamente , la consulta es: Tengo un proyecto donde tengo la misma aplicación desarrollada en VFP , instalada en una sede principal y en 3 sucursales en distintas ciudades , mi objetivo es que los artículos de alguna manera se sincronicen , o que por lo menos se cumpla lo siguiente , que la sede principal sea la única que pueda hacer modificaciones y las sucursales no, alguna sugerencia? tengo conocimientos de c# y servicios web y WCF , nunca he hecho Rest Api , pero pudiera aprender rápido , pero definitivamente necesito seguridad , porque , me da mucho miedo abrir puertos del Router de las sucursales y que pudiera filtrarse algún hacker o virus ramsomeware
como es eso de convertirse en prod Engineers con un curso? tengo esa duda hace tiempo, uno puedo ser prod Engineer sin haber estudiado en la universidad?
He utilizado vistas en SQL Server y parece tener la misma funcionalidad o propósito que estas tablas temporales ¿Hay alguna diferencia significativa? Saludos
Mis Cursos de Programación: hdeleon.net/cursos-premium/
Estimado @ Héctor, Cuando usamos las tablas temporales con # (particular) en los Store Procederes por defecto quedan aisladas y vigentes en el ciclo de vida de la ejecución del sp y vinculado a la conexión activa, luego se destruye. Solo si declaramos la tabla con ## (Global) requeriría un trato especial como el bloqueo. Saludos.
Si, solo que para el ejemplo había quedado persistente por ser un query aislado
Pequeño aporte:
*Al guardar en tablas temporales no estás haciendo crecer el transaction log ni el archivo de datos de ninguna base de datos de usuario (en la que muchas veces tampoco es como que exista muchísimo espacio disponible para operaciones intermedias).
*Es buena prácitca de los DBA que los archivos del tempdb se almacenen en la o las unidades más rápidas del servidor, por lo que procesar datos ahí debería ser más rápido que si lo hicieras en otra base de datos almacenada tal vez en almacenamientos más lentos.
Hola, Héctor las tablas temporales le hubiesen servido mucho a un primo que tuvo que hacer a mano la revisión de los datos en una planilla excel . Podría haber exportado estos datos a una tabla de sqlserver y luego a haber limpiado los datos. Fue hace muchos años es cierto que ahora podría usar la librería pandas con Python. Gracias por su excelente contenido como siempre.
Hector, las temporales con un solo # no se superponen nunca con otras conexiones y viven mientras la conexion creadora exista.
Por eso en la tempdb tiene un nombre que es muy largo.
Puedes probar hacer dos ventanas y crear la misma tabla temporal sin que se interfieran, incluso con estructura distinta sin problemas. Esa es parte de la magia y el motivo de la existencia de las ## que son visibles desde otra conexión.
Saludos
Si están así como lo he puesto claro que se superponen, en el video lo he mostrado. Cuando están en procedures el gestor les asigna un prefijo extra, pero en procedures.
No entre distintas conexiones, esto es, por ejemplo en una aplicación desktop donde cada cliente gestiona la conexión. El inconveniente sería quizás en una aplicación que está centralizada (como por ejemplo en el backend) donde una sola conexión le da servicio a más de un cliente.
Habría sido bueno haber hecho diferencia con las tablas temporales globales ## y con las tablas temporables variables @.
Graciassss Hector ¿Puedes hacer un video referente a CTE de SQL, por favor?
Cuando descrubrí los CTE pensé que era mágia! Son súper útiles!
gracias hector excelente aporte. por favor deberias hacer un curso en SQL de larga duración y bien completo para la plataforma UDEMY
Grande hector, casi cualquier cosa que tengo duda, tiene video. :3
Tienes algún video con tips para mejorar la cardinalidad resultante al realizar los distintos joins?
Excelente tópico, lo uso bastante para generar reportes.
Podrías hacer videos profundizar más sobre sql como las variables de tabla
Algunos métodos de sql
Ya que muchos como yo
Tenemos la idea que saber las últimas tecnologías es importante,
Cuando muchas veces en empresas muy grandes colocan toda la lógica en sql en los SP
y no tanto en el lenguaje de programación(C#, php)
Un saludo y buen video!
es genial el hector, saludos desde chilito
Hola Hector! soy muy fan de tu contenido, aprendo muchisimo con tus videos.
El otro dia estaba viendo ejercicios de SQL en Hackerrank y me encontre con temas interesantes como la creacion de variables de tipo Tabla, podrias hacer un video sobre eso?.
El ejercicio de Hackerrank donde lo ocupe se llama "Print Prime Numbers" en el cual tenias que sacar los numeros primos del 2 al 1000 pero de esta forma "2&3&5&7"
Para usar haquerrank debes pagar?
Resolví un caso con esta funcionalidad de SQL Server para limpiar un archivo csv, lo insertaba en una tabla temporal, después con Dapper lo mapeo a un objeto compuesto que me permite hacer
el insert en otras tablas ya con la información "limpia"
me sirvio muchisimo
Gracias por el vídeo crack, una pregunta, qué diferencia habría con usar una variable tipo tabla en cuanto funcionalidad?
Excelente, saludos
Qué opinas de las variables tipo tabla y que solo viven en tiempo de ejecución del query, cual recomiendas más?
Hector dejo un like y un comentario para el shampoo
cual es el teclado que usas?
grandiosa informacion que brindas, expicas muy bien, saludos
lo puso en la descripcion del video
¿Podría generar un nombre aleatorio para crear una tabla temporal, usarla y luego borrarla para evitar usar transacciones?
jajajajajaja esa intro, falto se tu tu propio jefe jajajaja
Hola Hector, Soy nuevo en tu comunidad, cuando haces los directos de pregunas y respuestas., un abrazo desde Rep. Dom.
Espero pronto, estaría bien en cuanto salga mi libro este mes
ALGUIEN SABE COMO USAR ESTAS TABLAS EN VISUAL STUDIO CODE? NO PUEDO INSERTAR NI EN TABLAS TEMPORALES COMO # NI EN TABLAS TEMPORALES DE SISTEMA CON VARIABLES @ POR QUE SIMPLEMENTE ME DICE QUE LA VARIABLE NO AH SIDO DECLARADA O EN EL CASO DE LAS # ME DICE OBJETO INVALIDO PERO EN EL SQL SERVER EN CONSULTAS SI LAS PUEDO REALIZAR
Jajajajaj men la estás rompiendo con esos intro :V
como puedo corregir el error 1452 a la hora de ingresar Registros
bro, consulta tengo una tabla que tengo que filtrar por estado(afiliado, desafiliado, etc) quise hacerlo por tablas temporales, pero no tengo permisos para crear tablas temporales, tiene que mostrarse los clientes afiliados que no esten desafiliados(cabe mencionar que sale el mismo cliente cuando se afilio y se desafilio, asi que sale doble registro del mismo cliente, incluso más si lo hizo varias veces) alguna sugerencia para poder realizar está consulta?
En mysql he creado tablas temporales a partir de un select, por ejemplo
Create temporary table ejemplo
Select * from tabla_x
No se si en sql server se pueda también
select * into #TablaTemporal from Tabla
El único inconveniente que te pudieras encontrar es que solo infiere el tipo de datos y si por ejemplo en algunos tienes algún campo que fuera Decimal(X,Y) lo pueda tomar como dato flotante.
En sql server también la puedes crear como select * into #mitemporal from tabla_x o puedes usar una variable de tipo tabla como declare @mitabla table(ID int)
Hola Hector, , Buenas tardes, no se si estas muy ocupado , pero quería hacerte una pequeña consulta y supongo que con tu experiencia en programación pudieras aclarármela rápidamente , la consulta es: Tengo un proyecto donde tengo la misma aplicación desarrollada en VFP , instalada en una sede principal y en 3 sucursales en distintas ciudades , mi objetivo es que los artículos de alguna manera se sincronicen , o que por lo menos se cumpla lo siguiente , que la sede principal sea la única que pueda hacer modificaciones y las sucursales no,
alguna sugerencia? tengo conocimientos de c# y servicios web y WCF , nunca he hecho Rest Api , pero pudiera aprender rápido , pero definitivamente necesito seguridad , porque , me da mucho miedo abrir puertos del Router de las sucursales y que pudiera filtrarse algún hacker o virus ramsomeware
Si tu dbs es sqlserver puedes usar. Un usuario sql. Sin permiso de escritura en la tabla, por los puertos puedes usar. Vpn.
como es eso de convertirse en prod Engineers con un curso? tengo esa duda hace tiempo, uno puedo ser prod Engineer sin haber estudiado en la universidad?
twitter.com/powerhdeleon/status/1650367346194755585
He utilizado vistas en SQL Server y parece tener la misma funcionalidad o propósito que estas tablas temporales ¿Hay alguna diferencia significativa? Saludos
Son cosas distintas, la vista es una consulta guardada
Jajaja me hiciste recordar a Kep brockman de los simpsons
Para cuando el curso de MSSQL nene…?
Like por sacarme una risa por el comentario del backend sucio jaja
DEBERÍAS HACER UN TALLER CON BLOCKCHAIN HERMANO