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.
 

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.

Preguntas similares