verificar se uma PK já existe em uma outra tabela do banco como FK
19/12/2015
0
Vou habilitar a edição apenas quando a PK ainda não foi utilizada.
Desde já agradeço...
Mario Jr
Posts
19/12/2015
Jothaz
Como assim "habilitar a edição apenas quando a PK ainda não foi utilizada"?
19/12/2015
Mario Jr
Só vou deixar editar um registro da tabela "produto" se este registro não foi utilizado ainda na tabela de "venda".
20/12/2015
Marcos P
Você precisa de uma solução genérica ( a partir de qualquer tabela da base ) ou específica ( como no caso a colocou acima ) ?
20/12/2015
Mario Jr
Digamos por exemplo que a PK da tabela "Produto" seja a FK de varias tabelas. Ou seja não posso fazer "Select VendaId FROM Venda WHERE ProdutoId = Id" ... Entende....
Preciso de uma solução que verifique se o ProdutoId existe em varias tabelas.
Atenciosamente.
28/12/2015
Marcos P
declare @NomeTabelaPK varchar(50) SET @NomeTabelaPK = 'Employees' --<<< indique AQUI o nome da tabela set nocount on declare @IDTabelaPK_rkeyid bigint set @IDTabelaPK_rkeyid = (select id from sysobjects where xtype = 'U' and name = @NomeTabelaPK) print 'Tabela PK ( Nome ): ' + @NomeTabelaPK print '-------------------------------------------------------------------------------------------------------------------------------------------------------' if (@IDTabelaPK_rkeyid is not null) begin print '' print 'Chaves estrangeiras relacionadas à chave primária da tabela' select substring(colPK.Name,1,50) as ColunaPK, substring(tabFK.Name,1,50) as TabelaFK, substring(colFK.Name,1,50) as ColunaFK from sysforeignkeys FK inner join syscolumns colPK on (colPK.id = FK.rkeyid and colPK.colid = FK.rkey) inner join sysobjects tabFK on (tabFK.id = FK.fkeyid) inner join syscolumns colFK on (colFK.id = FK.fkeyid and colFK.colid = FK.fkey) where FK.rkeyid = @IDTabelaPK_rkeyid end else print '> Tabela não existe... Processo Finalizado !' set nocount off
Não testei com chaves primárias compostas, mas acredito que deva funcionar...
Ok ?!?
Clique aqui para fazer login e interagir na Comunidade :)