Lista tipo dos campos - consulta das chaves primarias de uma tabela?

24/07/2013

0

Boa tarde a todos

Seria possível a consulta das chaves primarias de uma tabela?
Tenho o comando a baixo que me lista todos os campos de uma tabela do meu banco de dados, a dúvida é como saber qual campo e chave primaria e caso tenha FK mostra tambêm. Alguém sabe como listas estas informações?
Agradeço

SELECT COLUMN_NAME ,IS_NULLABLE , DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'TBARQUIVO'
Itamar Souza

Itamar Souza

Responder

Posts

24/07/2013

Joel Rodrigues

Opa.
Talvez este link te ajude: [url]http://blog.sqlauthority.com/2009/07/17/sql-server-two-methods-to-retrieve-list-of-primary-keys-and-foreign-keys-of-database/[/url]
Responder

24/07/2013

Mariana Carvalho

esses comando são mais para a parte admin do banco não é?
Responder

24/07/2013

Joel Rodrigues

esses comando são mais para a parte admin do banco não é?

É muito relativo, depende muito da necessidade. Quem precisar, usa, até mesmo o programador do sistema que acessa o banco.
Responder

24/07/2013

Itamar Souza

Valeu amigos!!

Conseguir fazer o que precisava! fica ai a dica para todos.

--listas todas as FK e a chave primária
SELECT CONSTRAINT_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'TBARQUIVO'

--descobre em qual tabela do banco a FK ou chave primária esta
SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_CATALOG = 'NomeBanco' and COLUMN_NAME = 'ID_ARQUIVO'
and ORDINAL_POSITION = 1

Muito Agradecido!
Responder

24/07/2013

Joel Rodrigues

Show de bola, Itamar. Que bom que conseguiu.
Neste caso, estou marcando o tópico como Concluído para que outros usuários possam consultá-lo como referência posteriormente.
Responder

24/07/2013

Daniel Costa

Só pra acrescentar, essa puxa a definição da tabela, as chaves tem a coluna isKey = 1

select
s.name as schema_name, o.name as table_name, c.name, type_name(c.system_type_id) as tipo,
c.max_length, c.precision, isnull(i.is_primary_key, 0) as iskey, c.is_nullable,
c.is_computed as autoincrementa ,c.scale
from
sys.objects o
inner join sys.columns c on o.object_id = c.object_id
inner join sys.schemas s on o.schema_id = s.schema_id
left join sys.index_columns ic on ic.column_id = c.column_id and ic.object_id = c.object_id
left join sys.indexes i on i.index_id = ic.index_id and ic.object_id = i.object_id
where
o.type_desc = 'user_table' and o.name = @tabela and s.name = @esquema
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar