sql >> Databasteknik >  >> RDS >> Sqlserver

OBJECT_ID för objekt i en annan databas - hur hittar man databas-ID eller namn/fullständigt objektnamn?

Du bör kunna göra detta:

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

Detta är vad du effektivt gör med OBJECT_ID('AnotherDB.ASchema.ATable')

Det betyder att du kan lita på dbname.sys.objects och undvika förväxling med metadatafunktioner.

Obs:de nya katalogvyer är designade för att användas och inte ändras från version till version, enligt länken. Förr i tiden ansågs det vara dålig praxis att använda systemtabeller, men stigmat finns fortfarande kvar. Så du kan säkert lita på sys.objects istället för att metadata fungerar.



  1. Dölja databaser för en inloggning på Microsoft SQL Server 2008R2 och högre

  2. ställa in flera kolumner med en uppdatering

  3. Oracle Install för SSIS-anslutning (och drivrutiner 32 64 bitar)

  4. Inga data hittades eller för många rader undantagsfel inträffade under masspostinsättning