Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

OBJECT_ID des Objekts in einer anderen Datenbank - wie finde ich die Datenbank-ID oder den Namen/vollständig qualifizierten Objektnamen?

Sie sollten dazu in der Lage sein:

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

Genau das machen Sie effektiv mit OBJECT_ID('AnotherDB.ASchema.ATable')

Das bedeutet, dass Sie sich auf dbname.sys.objects verlassen und Verwechslungen mit Metadatenfunktionen vermeiden können.

Hinweis:die neuen Katalogansichten sind so konzipiert, dass sie verwendet werden und sich nicht von Version zu Version ändern, wie im Link angegeben. Früher galt es als schlechte Praxis, Systemtabellen zu verwenden, aber das Stigma bleibt bestehen. Sie können sich also getrost auf sys.objects statt auf die Metadatenfunktionen verlassen.