Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

OBJECT_ID do objeto em outro banco de dados - como encontrar o ID do banco de dados ou o nome/nome do objeto totalmente qualificado?


Você deve ser capaz de fazer isso:
SELECT
   name
FROM
    AnotherDB.sys.objects   --changes context
WHERE
    object_id = OBJECT_ID('AnotherDB.ASchema.ATable')

Isso é o que você faz efetivamente com OBJECT_ID('AnotherDB.ASchema.ATable')

Isso significa que você pode confiar em dbname.sys.objects e evitar confusão com funções de metadados.

Observação:as novas exibições de catálogo são projetados para serem usados ​​e não mudarem de versão para versão, conforme o link. Antigamente, era considerado uma má prática usar tabelas do sistema, mas o estigma ainda permanece. Assim, você pode confiar com segurança em sys.objects em vez das funções de metadados.