Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   SQL Server (http://www.forosdelweb.com/f87/)
-   -   Uso de alias en SQL server (http://www.forosdelweb.com/f87/uso-alias-sql-server-544005/)

leojava2007 28/12/2007 09:22

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!!!

daniel00 28/12/2007 09:51

Re: Uso de alias en SQL server
 
Pues si pones la sentencia que estas usando sería más fácil ayudarte.

Saludos!

leojava2007 28/12/2007 10:05

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!

iislas 28/12/2007 11:01

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.............

leojava2007 28/12/2007 11:13

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]

Mithrandir 02/01/2008 13:31

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.

leojava2007 03/01/2008 06:06

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!


La zona horaria es GMT -6. Ahora son las 01:49.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.