SQL - consulta que devuelva campos llave de una tabla

 
Vista:

consulta que devuelva campos llave de una tabla

Publicado por Carlos (3 intervenciones) el 07/12/2006 22:56:05
Hola me hace falta una consulta SQL que me devuelva el nombre o algún identificador que me permita saber cual es el campo ID o llave de una tabla.........

ya he probado con esto:

select * from 'DB_NAME'.information_schema.columns
where table_name = 'Table_name'

que es una consulta que devuelve todos los datos de una tabla pero no aparece el KEY_COLUMN_USAGE que se supone devuelva el campo o columna de la tabla que sea llave.

Gacias si me pueden tirar una mano....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta que devuelva campos llave de una tabla

Publicado por Isaías (5072 intervenciones) el 07/12/2006 23:25:25
(D.R. Eladio Rincon)

SET NOCOUNT ON
GO
IF NOT OBJECT_ID ('tempdb.dbo.##objetos') IS NULL
DROP TABLE ##objetos

CREATE TABLE ##objetos (dbid INT, database_name SYSNAME, objectid INT, object_name SYSNAME, indexid INT, index_name SYSNAME NULL, xtype char(2))

DECLARE c1 CURSOR READ_ONLY
FOR SELECT dbid, name FROM master..sysdatabases where dbid >= 5
DECLARE @db_id SMALLINT
, @db_name SYSNAME
OPEN c1
FETCH NEXT FROM c1 INTO @db_id, @db_name
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
DECLARE @sql NVARCHAR(4000)
SET @sql = 'INSERT INTO ##objetos (dbid, database_name, objectid, object_name, indexid, index_name, xtype) '
SET @sql = @sql + 'SELECT ' + CAST(@db_id AS SYSNAME) + ', ''' + CAST(@db_name AS SYSNAME)
+ ''', so.id, so.name, si.indid, si.name, so.xtype FROM ' +
@db_name + '..sysobjects so join ' +
@db_name + '..sysindexes si on so.id = si.id WHERE so.id > 0'
EXEC (@sql)
END
FETCH NEXT FROM c1 INTO @db_id, @db_name
END
CLOSE c1
DEALLOCATE c1
SELECT * FROM ##objetos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta que devuelva campos llave de una tabla

Publicado por Carlos (3 intervenciones) el 08/12/2006 14:37:35
Gracias por la ayuda pero me parece una solución demasiado larga y complicada mira:

con esta consulta:
SELECT * FROM
NOMBRE_DB.INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_NAME ='NOMBRE_TABLA'

ya me devuelve todos los campos keys de la tabla..... y si lo que quiero es el campo llave solo pongo esto:

SELECT COLUM_NAME FROM
NOMBRE_DB.INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_NAME ='NOMBRE_TABLA'

Gracias de todas formas.................

Carlos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta que devuelva campos llave de una tabla

Publicado por Isaías (5072 intervenciones) el 09/12/2006 00:03:00
Cierto, solo que el store que te mande, lo hace de TODAS y cada una de las tablas que estan en tu base de datos.

Saludos Carlos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta que devuelva campos llave de una tabla

Publicado por Carlos (1 intervención) el 09/12/2006 22:48:45
si pero yo pedi solo una,

saludos isaias mexicano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta que devuelva campos llave de una tabla

Publicado por Isaías (5072 intervenciones) el 12/12/2006 01:19:17
:=)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar