Consulta

12/10/2004 - 22:51 por Israel | Informe spam
Hola,
Como puedo accesar a una columna mediante su numero y no mediante su
nombre, es decir, que en lugar de que ponga Select column1, pueda obtener la
columna mediante su numero y tambien poder seleccionar desde la columna 1
hasta la columnan, sin tener que estar especificando el nombre de todas las
columnas.

Preguntas similare

Leer las respuestas

#1 Javier Loria
12/10/2004 - 23:27 | Informe spam
Hola:
Bajo SQL tradicional, no es posible, ya que precisamente uno de los
objetivos de SQL es separarnos de esta estructura fisica y llevarlos a algo
logico.
Puede usar SQL Dinamico, pero te lo desrecomiendo hay muchos problemas
que se producen. No se como esta tu ingles pero te recomiendo:
http://www.sommarskog.se/dynamic_sql.html
En todo caso podrias con ayuda de una funcion hacer algo como esto:
==CREATE FUNCTION NombreColumna
(@Tabla SYSNAME,
@Numero int)
RETURNS SYSNAME
AS
BEGIN
RETURN (SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME=@Tabla
AND ORDINAL_POSITION=@Numero)
END
GO
=ÞCLARE @SELECT NVARCHAR(2000)
DECLARE @TABLA SYSNAME
SET @TABLA='Authors'
SET @SELECT='SELECT '+dbo.NombreColumna(@TABLA, 1)
+', '+dbo.NombreColumna(@TABLA, 2)
+' FROM '+@Tabla
EXEC (@SELECT)
== Espero te sirva.


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Israel" wrote in message
news:
Hola,
Como puedo accesar a una columna mediante su numero y no mediante su
nombre, es decir, que en lugar de que ponga Select column1, pueda obtener


la
columna mediante su numero y tambien poder seleccionar desde la columna 1
hasta la columnan, sin tener que estar especificando el nombre de todas


las
columnas.
Respuesta Responder a este mensaje
#2 Eladio Rincón
13/10/2004 - 01:44 | Informe spam
HOla Javier,

el artículo de Erland también está en castellano:
http://www.hayes.ch/sql/sql_dinamico.html


"Javier Loria" wrote in message
news:
Hola:
Bajo SQL tradicional, no es posible, ya que precisamente uno de los
objetivos de SQL es separarnos de esta estructura fisica y llevarlos a


algo
logico.
Puede usar SQL Dinamico, pero te lo desrecomiendo hay muchos problemas
que se producen. No se como esta tu ingles pero te recomiendo:
http://www.sommarskog.se/dynamic_sql.html
En todo caso podrias con ayuda de una funcion hacer algo como esto:
==> CREATE FUNCTION NombreColumna
(@Tabla SYSNAME,
@Numero int)
RETURNS SYSNAME
AS
BEGIN
RETURN (SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME=@Tabla
AND ORDINAL_POSITION=@Numero)
END
GO
==> DECLARE @SELECT NVARCHAR(2000)
DECLARE @TABLA SYSNAME
SET @TABLA='Authors'
SET @SELECT='SELECT '+dbo.NombreColumna(@TABLA, 1)
+', '+dbo.NombreColumna(@TABLA, 2)
+' FROM '+@Tabla
EXEC (@SELECT)
==> Espero te sirva.


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Israel" wrote in message
news:
> Hola,
> Como puedo accesar a una columna mediante su numero y no mediante su
> nombre, es decir, que en lugar de que ponga Select column1, pueda


obtener
la
> columna mediante su numero y tambien poder seleccionar desde la columna


1
> hasta la columnan, sin tener que estar especificando el nombre de todas
las
> columnas.


Respuesta Responder a este mensaje
#3 Javier Loria
13/10/2004 - 02:58 | Informe spam
Hola Eladio:
Pues me das una gran alegria, hace un monton de tiempo (mas de un ano),
comence a traducirlo y no pase del 1er parrafo.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Eladio Rincón" wrote in message
news:#
HOla Javier,

el artículo de Erland también está en castellano:
http://www.hayes.ch/sql/sql_dinamico.html


"Javier Loria" wrote in message
news:
> Hola:
> Bajo SQL tradicional, no es posible, ya que precisamente uno de los
> objetivos de SQL es separarnos de esta estructura fisica y llevarlos a
algo
> logico.
> Puede usar SQL Dinamico, pero te lo desrecomiendo hay muchos


problemas
> que se producen. No se como esta tu ingles pero te recomiendo:
> http://www.sommarskog.se/dynamic_sql.html
> En todo caso podrias con ayuda de una funcion hacer algo como esto:
> ==> > CREATE FUNCTION NombreColumna
> (@Tabla SYSNAME,
> @Numero int)
> RETURNS SYSNAME
> AS
> BEGIN
> RETURN (SELECT COLUMN_NAME
> FROM INFORMATION_SCHEMA.COLUMNS
> WHERE TABLE_NAME=@Tabla
> AND ORDINAL_POSITION=@Numero)
> END
> GO
> ==> > DECLARE @SELECT NVARCHAR(2000)
> DECLARE @TABLA SYSNAME
> SET @TABLA='Authors'
> SET @SELECT='SELECT '+dbo.NombreColumna(@TABLA, 1)
> +', '+dbo.NombreColumna(@TABLA, 2)
> +' FROM '+@Tabla
> EXEC (@SELECT)
> ==> > Espero te sirva.
>
>
> Javier Loria
> Costa Rica
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda
>
> "Israel" wrote in message
> news:
> > Hola,
> > Como puedo accesar a una columna mediante su numero y no mediante su
> > nombre, es decir, que en lugar de que ponga Select column1, pueda
obtener
> la
> > columna mediante su numero y tambien poder seleccionar desde la


columna
1
> > hasta la columnan, sin tener que estar especificando el nombre de


todas
> las
> > columnas.
>
>


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