Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Uso de alias en SQL server

Estas en el tema de Uso de alias en SQL server en el foro de SQL Server en Foros del Web. Hola! estoy trabajando sobre una base SQL Server y quiero crear una tabla temporal. Pero hay datos que estan definidos por el administrador de la ...
  #1 (permalink)  
Antiguo 28/12/2007, 09:22
 
Fecha de Ingreso: octubre-2007
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Uso de alias en SQL server

Hola! estoy trabajando sobre una base SQL Server y quiero crear una tabla temporal. Pero hay datos que estan definidos por el administrador de la base de datos y necesito usar algunos de esos datos en la tabla que estoy creando. Pero cuando armo la sentencia, pongo el nombre de la columna y a continuacion el alias, y despues ejecuto esta misma sentencia me tira un error por cada uno de los alias que utilizo con la siguiente leyenda:

"Can't find type 'nombreTipo' "

Lo que me pregunto es, tengo que hacer algun tipo de import para que el motor sepa de donde sale este tipo al que hago referencia? o sino, cuál es la sintaxis correcta para hacer lo que yo quiero?

Espero su respuesta, Saludos!!!
  #2 (permalink)  
Antiguo 28/12/2007, 09:51
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 18 años, 1 mes
Puntos: 8
Re: Uso de alias en SQL server

Pues si pones la sentencia que estas usando sería más fácil ayudarte.

Saludos!
  #3 (permalink)  
Antiguo 28/12/2007, 10:05
 
Fecha de Ingreso: octubre-2007
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Uso de alias en SQL server

use pta
create table #ordenes_anuladas
(id_orden_anulada dbo.d_ID_comprobante, ...)

pta es la base de datos en la que quiero crear la tabla, puse solo uno de las columnas que va a tener la tabla, 'dbo.d_ID_comprobante' es el tipo de dato definido por el usuario que yo quiero usar para una de las columnas de la tabla (entre otros). Cuando ejecuto la consulta me indica el siguiente problema:

"Can't find type 'd_ID_comprobante'"

que es el que estoy usando. Y lo que supongo es que como no es un tipo de datos del sistema por eso no me lo estara reconociendo. Entonces quizas sea como cuando uno programa que incluye una cabecera indicando que tipos de datos uno quiere usar. O no se, quizas lo que estoy haciendo no se puede hacer. Saludos!
  #4 (permalink)  
Antiguo 28/12/2007, 11:01
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Re: Uso de alias en SQL server

Puedes ejecutar esto en tu query analyzer

EXEC SP_HELP @objname = d_ID_comprobante

Dime que te da.............
  #5 (permalink)  
Antiguo 28/12/2007, 11:13
 
Fecha de Ingreso: octubre-2007
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Uso de alias en SQL server

Me da lo siguiente cuando ejecuto lo que me pasaste:

Type_name: d_ID_comprobante
Storage_type: numeric
Length: 5
Nulls: 1
Prec: 8
Scale: 0
Default_name: [NULL]
Rule_name: [NULL]
Access_Rule_name Identity: [NULL]
  #6 (permalink)  
Antiguo 02/01/2008, 13:31
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 8 meses
Puntos: 25
Re: Uso de alias en SQL server

El problema es que los tipos de datos propios se almacenan en tu DB de siempre, mientras que las tablas temporales en realidad se almacenan en tempdb... Y en tempdb tu tipo de datos no existe.

La solución que en este momento alcanzo a ver es:
1) Declarar la tabla temp en el tipo de datos de SQL y no el de usuario.
2) Crear el tipo de datos en tempdb (que tendrás que estar creandolo cada vez que lo utilices, además de revisar si es que no existe previamente).

Un verdadero pain in the 4$$, deberían calificarlo de Bug.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 03/01/2008, 06:06
 
Fecha de Ingreso: octubre-2007
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Uso de alias en SQL server

Entiendo lo que me decis, gracias! porque realmente estaba muy desorientado. Lo que siempre hago es crear la tabla temporal a partir de un INSERT INTO, que no me produce ningun error porque evidentemente los tipos de datos correspondientes se generan en forma automatica cuando ejecuto la sentencia. Lo que pasa es que yo queria combinar los resultados de distintas consultas en una misma tabla, pero cada consulta tiene columnas nuevas que quiero ir agregando a la tabla. Me parece que me conviene crear una tabla simple (no temporal) con los tipos de datos que yo necesito, y segun lo que dice Mithrandir, entonces no voy a tener ese problema. Saludos!
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 00:37.