nombre de column

15/10/2008 - 20:01 por Luis Mata | Informe spam
hola como puedo saber si una columan existe en una tabla.

Luis

Preguntas similare

Leer las respuestas

#6 Carlos M. Calvelo
15/10/2008 - 21:53 | Informe spam
Hola Diego,

> Hace no mucho se debatió por aquí la mejor opción en cuestión de
> rendimiento. Sería algo similar a esto:

> IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE
> TABLE_NAME='TuTabla' AND COLUMN_NAME='TuColumna')

Entiendo. Pero será TOP 1 :-) (o TOP 0 o TOP 4) :-)




Bueno... el EXISTS (SELECT TOP 0 * ...) no es muy aconsejable :-)

Como estoy hoy! Es la emoción... el susto que me has dado
saliendo así de una esquina sin avisar ni na. :-)

Saludos,
Carlos
Respuesta Responder a este mensaje
#7 Carlos M. Calvelo
15/10/2008 - 22:07 | Informe spam
Hola Alejandro,

On 15 okt, 21:37, Alejandro Mesa
wrote:
Juan Diego Bueno,

Vale tu comentario, pero como fue que lo probaron?




Yo supongo que analizando planes de ejecución. El consejo de
utilizar Žselect top 1 1 ...' o 'select top 1 *' en vez del
del 'select * ...' lo he visto mas veces (qué sé yo donde!?)

Si el optimizador es tan tonto como para devolver 1000 registros y
458 columnas para determinar si existe alguno... pues es buen
consejo :-)

Mi consejo es utilizar 'select top 1 394 from ...' :-)

Saludos,
Carlos
Respuesta Responder a este mensaje
#8 Juan Diego Bueno
15/10/2008 - 22:17 | Informe spam
Hola Alejandro:

Lo vi aquí, además participaste tú en ello. No sé si era de las más rápidas,
pero si mejor que un select *. El caso era pinchar un poco a Carlos :)

De todas formas es la fórmula que utilizo para evaluar la existencia de un
objeto en la BD, y si no es la más óptima, supongo que al menos se le
acerque, no¿?

Carlos, por aquí seguimos a cuentagotas y esas cosas :)

Saludos

http://groups.google.com/group/micr...005b2501d6
"Alejandro Mesa" escribió en el
mensaje de noticias:
Juan Diego Bueno,

Vale tu comentario, pero como fue que lo probaron?

Por otra parte, pudieramos usar tambien la funcion columnproperty, la cual
devolvera NULL si la columna no existe. Claro esta, el nombre de la tabla,
asi como el de la propiedad usada debe existir.

if columnproperty(object_id('dbo.mi_tabla', 'AllowsNull')) is null
print 'columna no existe'
else
print 'columna si existe'


AMB

"Juan Diego Bueno" wrote:

Hola Carlos:

"Carlos M. Calvelo" escribió en el mensaje de
noticias:
> Hola Luis,
>
> On 15 okt, 20:01, "Luis Mata"
> wrote:
>> hola como puedo saber si una columan existe en una tabla.
>>
>> Luis
>
> Si esta consulta tiene resultado (exists(...)) entonces
> existe
>
> select *
> from INFORMATION_SCHEMA.COLUMNS
> where TABLE_NAME='TuTabla' AND
> COLUMN_NAME='TuColumna'

Hace no mucho se debatió por aquí la mejor opción en cuestión de
rendimiento. Sería algo similar a esto:

IF EXISTS (SELECT TOP 1 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_NAME='TuTabla' AND COLUMN_NAME='TuColumna')

Un saludo


Respuesta Responder a este mensaje
#9 Luis Mata
15/10/2008 - 22:54 | Informe spam
perfecto me sirvio

"Carlos M. Calvelo" escribió en el mensaje de
noticias
news:
Hola Luis,

On 15 okt, 20:01, "Luis Mata"
wrote:
hola como puedo saber si una columan existe en una tabla.

Luis



Si esta consulta tiene resultado (exists(...)) entonces
existe

select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='TuTabla' AND
COLUMN_NAME='TuColumna'

Saludos,
Carlos
Respuesta Responder a este mensaje
#10 Alejandro Mesa
16/10/2008 - 17:38 | Informe spam
Carlos,

Si el optimizador es tan tonto como para devolver 1000 registros y
458 columnas para determinar si existe alguno... pues es buen
consejo :-)



Si el optimizador es tan tonto, entonces estamos jodidos.

Mi consejo es utilizar 'select top 1 394 from ...' :-)



Buen consejo :-)


AMB


"Carlos M. Calvelo" wrote:

Hola Alejandro,

On 15 okt, 21:37, Alejandro Mesa
wrote:
> Juan Diego Bueno,
>
> Vale tu comentario, pero como fue que lo probaron?
>

Yo supongo que analizando planes de ejecución. El consejo de
utilizar ´select top 1 1 ...' o 'select top 1 *' en vez del
del 'select * ...' lo he visto mas veces (qué sé yo donde!?)

Si el optimizador es tan tonto como para devolver 1000 registros y
458 columnas para determinar si existe alguno... pues es buen
consejo :-)

Mi consejo es utilizar 'select top 1 394 from ...' :-)

Saludos,
Carlos

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida