Foros del Web » Programación para mayores de 30 ;) » .NET »

manejo de tablas teporales

Estas en el tema de manejo de tablas teporales en el foro de .NET en Foros del Web. hola tengo una tabal temporal dentro de un procedimient pero cuando quiero consultar algo de ella me dice que no existe si consulto dentro del ...
  #1 (permalink)  
Antiguo 19/07/2009, 10:24
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
manejo de tablas teporales

hola tengo una tabal temporal dentro de un procedimient pero cuando quiero consultar algo de ella me dice que no existe si consulto dentro del procedimiento si logro mostrar lo que quiero pero fuera de el marca el error que ya mencione que no existe
mi codigo es el siguiente
-- procedimiento para llamar a la tabal temporal solo los valores que cumplan e anio y el depto
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
alter procedure tem
@id_depto int,
@anio int
as
begin
create table #temporal
(
llenado int,
depto int,
agencia varchar(1),
estrategico int,
estrategia int,
objetivo int,
accion int,
indicador int,
prog_mes int,
real_mes int,
mes varchar(50),
anio int
)

INSERT INTO #temporal(llenado,depto,agencia,estrategico,estrat egia,objetivo,accion,indicador,prog_mes,real_mes,m es,anio)
select p.id_llenado,c.id_depto,c.id_agencia ,c.id_obj_estrategico,c.id_estrategia,id_objetivo, c.id_accion,c.id_indicador,p.prog_mes,p.real_mes,p .mes,p.año
from prog_real p,concentrar_plan c
where p.id_llenado=c.id_llenado and c.id_depto=@id_depto and p.año=@anio
select llenado,prog_mes from #temporal
end
go
exec tem 2,2099
  #2 (permalink)  
Antiguo 19/07/2009, 20:29
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: manejo de tablas teporales

Exactamente como dices en el titulo: Tabla Temporal

Mira esto:
create table #temporal

Dentro de el StoreProcedure se crea la tabla para manipular cualquier dato, solo existe en el store despues que la creaste con el codigo ese que puse arriba, lo que en realidad no existe.

Saludos,
  #3 (permalink)  
Antiguo 19/07/2009, 21:03
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: manejo de tablas teporales

gracias comprendo que es temporal pero segun lo que he leido puedo acceder a ella en cualquier momemto simpre y cuando no se cierre la sesion. esto lo estoy utilizando como una alternativa de solucion para poder crear otros reportes bueno las connsultas a esta tabla temporal pudo hacerlas en el mismo procedimiento inclusive crear otras temporales pero cuando llamo a este procedimiento desde mi web form asp con lenguje C# resulta que no me muesra los campos de esa tabla. entonces quisiera que si te es posible me ayudes a encontrar una solucion. con mis tabals temporales, ya que mi sistema es cliente servidor multiusuario se me ha ocurrido meter esa consulta a una vista pero no se como remplazar esa visat cuando entre un usuario diefernte y jecute el procedimiento.
de cualquier modo agradesco tu ayuda y espero que me puedad seguir ayudando
  #4 (permalink)  
Antiguo 20/07/2009, 10:18
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: manejo de tablas teporales

Explica profundamente y paso a paso de que se trata el proyecto que haces y define la solucion que quieres hacer.

Con esto podremos ver si lo que deseas hacer es así como piensas ó si existen otras formas.

Saludos,
  #5 (permalink)  
Antiguo 20/07/2009, 11:02
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: manejo de tablas teporales

para esto debes crear tablas temporales generales con el identificador ##

ejm:

create table ##nomtabla
(
)

y para acceder de ella solo

select * from ##nomtabla

eso quiere decir que se creara una tabla temporal con nombre ##nomtabla
en la cual cualquier proceso puede acceder a ella.
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #6 (permalink)  
Antiguo 20/07/2009, 14:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: manejo de tablas teporales

ok primero
dwakd gracias por la ayuda
el proyecto que estoy haciendo se trata de hacer estimaciones de alcances para deteerminadas acciones estas acciones las hacen diversos departamentos de la empresa esto es al inicio del año al gunos departamentos tienen algo que llamaman micronegocios
posteriormente al fin de cada mes se debe registrar el alcance de lo logrado para cada accion
con estos datos se deben se elaborar reportes a nivel micronegocio,departamento, y a nivel accion estos reporte son anuales y mensuales y obtener las sumas de los valores programados y de los valores reales ademas de obtener otras sumas que ellos llaman totales acumulados.
en pocas palabras es como calcular el total de filas y columnas
pero resulta que algunos de esops reportes toman valores de otros reportes entonces necesito meter los datos de las consultas en una temporal para obtener los siguintes reportes. por que ademas son varios los usuarios que pueden tener acceso a generar esos reportes al mismo momento
espero me pueda entender trate de ser lo mas clara posible
  #7 (permalink)  
Antiguo 20/07/2009, 14:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: manejo de tablas teporales

drady7
intente tambien con llas temporales gloables pero no resulta como lo digo al princio si las temporales las creo fuera del sp despues puedo accesar a ellas pero si las creo dentro es solo hay donde existen dentro deo procedimiento inclusive intente declarandola como variable de tipo tabla y la respuesta es la misma
  #8 (permalink)  
Antiguo 20/07/2009, 14:43
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: manejo de tablas teporales

porque yo entienda ese codigo te deberia permitir acceder a las tablas temporales ya que al asignarles el identificador ## deberia salir cual es el codigo como lo estas realizando y que version de SQL stas utilizando
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #9 (permalink)  
Antiguo 20/07/2009, 16:08
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: manejo de tablas teporales

el codigo es axacranemebte elde la partred e a rriba donde inicio la pegunta y mi manehjador es sql server 2005 en terroria dice que las tremporales funcionan hasta que se cierra la conexiondel usuario que la creo si es de tipo local como es mi caso o de lo contrario si es global hasta que elultimonusuario que la acuope cierra sesion
  #10 (permalink)  
Antiguo 20/07/2009, 16:48
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: manejo de tablas teporales

la otra opcion es que declares un valor de tipo tabla y que te devuelve dicho valor

declare @tabla table(
columna1 int,
columna2 int,
columna3 varchar(30)
)

insert into @tabla values(2,3,'Ok');
select * from @tabla;
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #11 (permalink)  
Antiguo 20/07/2009, 19:56
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: manejo de tablas teporales

como te mensione altes tambien eso ya lo probe
  #12 (permalink)  
Antiguo 20/07/2009, 20:42
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 9 meses
Puntos: 15
Respuesta: manejo de tablas teporales

Ahora bien este post va de largo sin haber incluido algunos comentarios sobre el uso de tablas temporales.

1- El uso no es recomendable
2- Se hace muy necesario unicamente para filtro de informacion muy grande entre diferentes tablas para evitar el uso de Cursores

No entiendo porque quieres usar una tabla temporal si el select que tienes alli te devuelve el resultado deseado.

Sabias que las tablas temporales se crean en el tempdb de la base de datos?? y el mal uso de esto causa bloqueos?? la verdad no veo que tengas que hacer que un simple query no te soluciones eso.

Otro detalle si lo que quieres es que esos datos se mantengan vivos en tu programa entonces mejor pasalos a tu programa y mantenlos en el programa en memoria como un recurso global.

Aveces las vias que se encuentran no son las mejores y en estos casos lo mejor es explicar lo que estan haciendo y la via que ustedes quieren usar para ver si la comunidad les ayuda con mejores ideas basadas en rendimiento.

Saludos,
  #13 (permalink)  
Antiguo 22/07/2009, 11:36
 
Fecha de Ingreso: mayo-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: manejo de tablas teporales

ok gracias por la ayuda y si es una opcion buena la de mantener los datos de forma global aunque por el momento meti los datos auna tabla normal haciendola concurrente y eso me permite avanzasr a donde queria gracias
por ahora tengo un nuevo problema que resolve que ya expuse en otro foro gracai por la ayuda nuevamente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:47.