 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
FernandoCartaxo Novato

Registrado: Segunda-Feira, 27 de Março de 2006 Mensagens: 97
|
Enviada: Qua Jan 24, 2007 11:36 am Assunto: descobrir a primary key?(RESOLVIDO) |
|
|
quero descobrir qual é a primary key de uma tabela, como faço?
eu fiz um cursor com o nome de todas as tabelas do meu banco e quero saber de cada tabela qual é a chave primaria, pra saber qual o count dela
como faço?
procurei comandos como 'isPrimaryKey' e outros parecidos, procurei por campos na tabela syscolumns e também não achei...
alguem me dá uma ajuda?
obrigado
Editado pela última vez por FernandoCartaxo em Qui Jan 25, 2007 7:45 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
FernandoCartaxo Novato

Registrado: Segunda-Feira, 27 de Março de 2006 Mensagens: 97
|
Enviada: Qui Jan 25, 2007 7:44 pm Assunto: |
|
|
Achei a resposta de minha dúvida em outro site, e estou postando para não ficar a pergunta em aberto, e caso alguem também tenha a mesma dúvida, está aí a resposta.
esse SELECT trás outros dados, não só qual o campo é a primary key
Código: |
SELECT user_name(obj.uid) as UserName,
obj.id as TableID,
obj.name as TableName, col.name as FieldName,
col.colorder as ColumnOrder,
type_name(col.xusertype) +
CASE WHEN type_name(col.xusertype) = 'varchar'
THEN '(' + convert(varchar,convert(int, prec)) + ')'
WHEN type_name(col.xusertype) = 'nvarchar'
THEN '(' + convert(varchar,convert(int, prec)) + ')'
WHEN type_name(col.xusertype) = 'char'
THEN '(' + convert(varchar,convert(int, prec)) + ')'
WHEN type_name(col.xusertype) = 'nchar'
THEN '(' + convert(varchar,convert(int, prec)) + ')'
ELSE
convert(varchar,'')
END AS DataType,
CASE WHEN index_col(obj.name, 1, col.colorder) != '' THEN 'Yes' ELSE 'No' END AS IsPK,
convert(varchar, pro.value) as ColumnComments,
CASE col.IsNullable WHEN 1 THEN 'Yes' ELSE 'No' END AS IsNullable FROM sysobjects obj
INNER JOIN syscolumns col on obj.id = col.id
LEFT JOIN sysobjects def on obj.id = def.parent_obj and def.info = col.colorder and def.xtype in ('D ')
LEFT JOIN syscomments com on def.id = com.id
LEFT JOIN sysproperties pro on obj.id = pro.id and col.colorder = pro.smallid
left join sysproperties prot on prot.id = obj.id and prot.smallid = 0
WHERE obj.xtype = 'U' AND obj.name != 'dtproperties' AND obj.name LIKE 'SAU%'
ORDER BY object_name(obj.id), col.colorder |
|
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|