Seleccionar todas las columnas menos una

08/11/2007 - 18:59 por Carlos Sancho | Informe spam
Hola a todos

En Transact-SQL ¿cómo puedo seleccionar todas las columnas de una tabla
excepto una?
¿Existe alguna forma de hacerlo sin tener que enumerar una a una las
columnas que deseo?

Gracias por cualquier sugerencia

Saludos

Carlos Sancho

Preguntas similare

Leer las respuestas

#1 Gux (MVP)
08/11/2007 - 19:10 | Informe spam
No hay otra forma de hacerlo, usted debe mencionar cada una de las columnas
excepto la que no necesita.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Carlos Sancho" wrote:

Hola a todos

En Transact-SQL ¿cómo puedo seleccionar todas las columnas de una tabla
excepto una?
¿Existe alguna forma de hacerlo sin tener que enumerar una a una las
columnas que deseo?

Gracias por cualquier sugerencia

Saludos

Carlos Sancho



Respuesta Responder a este mensaje
#2 jcpc91
08/11/2007 - 19:55 | Informe spam
puedes utilizar el diseñador de consultas te facilitará la vida
Respuesta Responder a este mensaje
#3 Peni
08/11/2007 - 20:17 | Informe spam
Si es para una sola tabla mi procedimiento no merece la pena, pero si
es para muchas ... Ten en cuenta que uso cursores, asi que no esperes
buen rendimiento. Quizás no sea muy elegante, pero funciona

CREATE function Rutinas.NColumnas (@Tabla as nvarchar(100))

RETURNS nvarchar(4000)
AS
BEGIN
Declare @C as nvarchar(4000)
Declare @Name as nvarchar(250)

DECLARE Columnas CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
select name from syscolumns WITH (nolock)
where Id = (select top 1 id from sysobjects where xtype='U'
and name=@Tabla) and name <>'tu columna'

OPEN Columnas
set @C=''
FETCH NEXT FROM Columnas into @Name
WHILE @@FETCH_STATUS = 0
BEGIN
if @C= ''
set @C = rtrim(@Name)
else
set @C = @C + ',' + rtrim(@Name)
FETCH NEXT FROM Columnas into @Name
END

CLOSE Columnas
DEALLOCATE Columnas

return rtrim(@C)
END

Hola a todos

En Transact-SQL ¿cómo puedo seleccionar todas las columnas de una tabla
excepto una?
¿Existe alguna forma de hacerlo sin tener que enumerar una a una las columnas
que deseo?

Gracias por cualquier sugerencia

Saludos




=Saludos. Peni.
=
Respuesta Responder a este mensaje
#4 Peni
08/11/2007 - 20:27 | Informe spam
Perdón, que no acabé el post.
Esta función te devuelve las columnas de la tabla, menos la(s)que
quieras, luego deberías usar SQL dinámico.

Antes de que me llaméis de todo ;-) diré que lo uso para copiar datos
en la misma tabla, quitando una columna de identidad, para copiar los
datos de un ejercicio al siguiente, por lo solo se ejecuta una vez al
año.

Si es para una sola tabla mi procedimiento no merece la pena, pero si es para
muchas ... Ten en cuenta que uso cursores, asi que no esperes buen
rendimiento. Quizás no sea muy elegante, pero funciona

CREATE function Rutinas.NColumnas (@Tabla as nvarchar(100))

RETURNS nvarchar(4000)
AS
BEGIN
Declare @C as nvarchar(4000)
Declare @Name as nvarchar(250)

DECLARE Columnas CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
select name from syscolumns WITH (nolock)
where Id = (select top 1 id from sysobjects where xtype='U' and
name=@Tabla) and name <>'tu columna'

OPEN Columnas
set @C=''
FETCH NEXT FROM Columnas into @Name
WHILE @@FETCH_STATUS = 0
BEGIN
if @C= ''
set @C = rtrim(@Name)
else
set @C = @C + ',' + rtrim(@Name)
FETCH NEXT FROM Columnas into @Name
END

CLOSE Columnas
DEALLOCATE Columnas

return rtrim(@C)
END

Hola a todos

En Transact-SQL ¿cómo puedo seleccionar todas las columnas de una tabla
excepto una?
¿Existe alguna forma de hacerlo sin tener que enumerar una a una las
columnas que deseo?

Gracias por cualquier sugerencia

Saludos






=Saludos. Peni.
=
Respuesta Responder a este mensaje
#5 Gux (MVP)
08/11/2007 - 20:56 | Informe spam
Complemento mi mensaje con lo que suelo hacer en esos casos.

Uso el Management Studio, selecciono la tabla y genero la SELECT. Luego
copio/pego la misma en donde la necesito usar y borro la columna sobrante.

No es ciencia de cohetes pero sirve para mí :-)

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Gux (MVP)" wrote:

No hay otra forma de hacerlo, usted debe mencionar cada una de las columnas
excepto la que no necesita.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Carlos Sancho" wrote:

> Hola a todos
>
> En Transact-SQL ¿cómo puedo seleccionar todas las columnas de una tabla
> excepto una?
> ¿Existe alguna forma de hacerlo sin tener que enumerar una a una las
> columnas que deseo?
>
> Gracias por cualquier sugerencia
>
> Saludos
>
> Carlos Sancho
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida