Si quieres listar todas las llaves primarias en una base de datos SQL Server ya sea por motivos de practicidad o porque estés buscando una llave específica y no sepas a qué tabla pertenece, te recomiendo este sencillo script:
SELECT i.name AS IndexName, OBJECT_NAME(ic.OBJECT_ID) AS TableName,
COL_NAME(ic.OBJECT_ID,ic.column_id) AS ColumnName
FROM sys.indexes AS i
INNER JOIN sys.index_columns AS ic
ON i.OBJECT_ID = ic.OBJECT_ID AND i.index_id = ic.index_id
WHERE i.is_primary_key = 1
--AND i.name LIKE '%PK_Buscado%' --Descomentar si quieres buscar una PK por nombre
ORDER BY I.NAME DESC
Esto listará el nombre de todas las llaves primarias (PK) en una base de datos, el nombre de la tabla a la que pertenece y sobre qué columna está definida la PK.
He comentado la parte que permite buscar por el nombre del PK. Si deseas buscar una PK específica, sólo debes descomentarla.
Consideraciones:
1. Sólo se pueden mover objetos entre esquemas de una misma base de datos.
2. Transferir un objeto no actualizará automáticamente sus referencias, éstas deben ser modificadas manualmente.
3. ALTER SCHEMA genera un lock a nivel de esquema.
Si tienes alguna duda, comentarios o sugerencias, me puedes enviar un correo a bitácoradeundba@gmail.com.