Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

OBJECT_ID dell'oggetto in un altro database:come trovare l'ID o il nome del database/il nome dell'oggetto completo?

Dovresti essere in grado di farlo:

SELECT
   name
FROM
    AnotherDB.sys.objects   --changes context
WHERE
    object_id = OBJECT_ID('AnotherDB.ASchema.ATable')

Questo è ciò che effettivamente fai con OBJECT_ID('AnotherDB.ASchema.ATable')

Ciò significa che puoi fare affidamento su dbname.sys.objects ed evitare confusione con le funzioni dei metadati.

Nota:le nuove viste del catalogo sono progettati per essere utilizzati e non cambiano da versione a versione, come da link. Ai vecchi tempi era considerato una cattiva pratica utilizzare le tabelle di sistema, ma lo stigma rimane ancora. Quindi, puoi tranquillamente fare affidamento su sys.objects piuttosto che sulle funzioni dei metadati.