Obtener las columnas llaves y las columnas normales

29/06/2006 - 16:36 por eduardo | Informe spam
Hola a todo el mundo
Necesito recuperar los nombres de las columnas de una tabla en dos cadenas:
* Una con las columnas que pertenecen a la llave
* Otra con las demás columnas
Las cadenas deberían estar separadas por una coma o un espacio
@Llaves = 'campoLlave1,campoLlave2'
@normales = 'normal1,normal2,normal3'

Ahora mismo, gracias a un post anterior, logré recuperar los nombres de
las columnas en dos tablas temporales pero no se como convertir el
resultado en las cadenas que espero. Además necesito saber si lo que
estoy haciendo es lo mejor o si existen otras formas.
De antemano gracias por las sugerencias.


create table #normales (cadNor nvarchar(50))
create table #llaves (cad nvarchar(50))

insert into #llaves
select COLUMN_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where table_name = 'tabla1'
go

insert into #normales
select COLUMN_NAME from INFORMATION_SCHEMA.columns where table_name =
'tabla1' AND COLUMN_NAME NOT IN (select * from #llaves)

select * from #normales
select * from #llaves

drop table #normales
drop table #llaves
 

Leer las respuestas

#1 Alejandro Mesa
29/06/2006 - 16:51 | Informe spam
Eduardo,

Para que quieres ponerlas en una cadena?

Si esa cadena va a ser usada por una aplicacion externa, entonces has la
concatenacion en la aplicacion y no en SQL Server.

Ve si este articulo te es de ayuda.

http://groups.google.com/group/micr...366dd9e73e


AMB

"eduardo" wrote:

Hola a todo el mundo
Necesito recuperar los nombres de las columnas de una tabla en dos cadenas:
* Una con las columnas que pertenecen a la llave
* Otra con las demás columnas
Las cadenas deberían estar separadas por una coma o un espacio
@Llaves = 'campoLlave1,campoLlave2'
@normales = 'normal1,normal2,normal3'

Ahora mismo, gracias a un post anterior, logré recuperar los nombres de
las columnas en dos tablas temporales pero no se como convertir el
resultado en las cadenas que espero. Además necesito saber si lo que
estoy haciendo es lo mejor o si existen otras formas.
De antemano gracias por las sugerencias.


create table #normales (cadNor nvarchar(50))
create table #llaves (cad nvarchar(50))

insert into #llaves
select COLUMN_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where table_name = 'tabla1'
go

insert into #normales
select COLUMN_NAME from INFORMATION_SCHEMA.columns where table_name =
'tabla1' AND COLUMN_NAME NOT IN (select * from #llaves)

select * from #normales
select * from #llaves

drop table #normales
drop table #llaves

Preguntas similares