Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Förhandsversion av Microsoft Fabric
Returnerar databasschemanamnet för schemaomfattande objekt. En lista över schemaomfattande objekt finns i sys.objects (Transact-SQL).
              
              
              Transact-SQL syntaxkonventioner
Syntax
OBJECT_SCHEMA_NAME ( object_id [, database_id ] )  
Arguments
object_id
ID:t för det objekt som ska användas. object_id är int och antas vara ett schemaomfattande objekt i den angivna databasen eller i den aktuella databaskontexten.
database_id
ID:t för databasen där objektet ska letas upp. database_id är int.
Returtyper
sysname
Exceptions
Returnerar NULL vid fel eller om en anropare inte har behörighet att visa objektet. Om måldatabasen har alternativet AUTO_CLOSE inställt på PÅ öppnar funktionen databasen.
En användare kan bara visa metadata för skyddsbara filer som användaren äger eller som användaren har beviljats behörighet för. Inbyggda funktioner för metadatautsändande som OBJECT_SCHEMA_NAME kan returnera NULL om användaren inte har någon behörighet för objektet. Mer information finns i Konfiguration av synlighet för metadata.
Permissions
Kräver ALLA behörigheter för objektet. Om du vill ange ett databas-ID krävs också CONNECT-behörighet till databasen, eller så måste gästkontot vara aktiverat.
Anmärkningar
Systemfunktioner kan användas i urvalslistan, i WHERE-satsen och var som helst där ett uttryck tillåts. Mer information finns i Uttryck och WHERE.
Resultatuppsättningen som returneras av den här systemfunktionen använder sortering av den aktuella databasen.
Om database_id inte anges förutsätter SQL Server Database Engine att det object_id finns i kontexten för den aktuella databasen. En fråga som refererar till en i en object_id annan databas returnerar NULL eller felaktiga resultat. I följande fråga är till exempel kontexten för den aktuella databasen AdventureWorks2022. Databasmotorn försöker returnera ett objektschemanamn för den angivna object_id i den aktuella databasen i stället för den databas som anges i FROM-satsen i frågan. Därför returneras felaktig information.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id)  
FROM master.sys.objects;  
I följande exempel anges databas-ID för master databasen i OBJECT_SCHEMA_NAME funktionen och rätt resultat returneras.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name  
FROM master.sys.objects;   
Examples
A. Returnera objektets schemanamn och objektnamn
              gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
I följande exempel returneras objektets schemanamn, objektnamn och SQL-text för alla cachelagrade frågeplaner som inte är ad hoc- eller förberedda instruktioner.
SELECT DB_NAME(st.dbid) AS database_name,   
    OBJECT_SCHEMA_NAME(st.objectid, st.dbid) AS schema_name,  
    OBJECT_NAME(st.objectid, st.dbid) AS object_name,   
    st.text AS query_statement  
FROM sys.dm_exec_query_stats AS qs  
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st  
WHERE st.objectid IS NOT NULL;  
GO  
B. Returnera objektnamn i tre delar
I följande exempel returneras databasen, schemat och objektnamnet för alla objekt i den aktuella databaskontexten.
SELECT QUOTENAME(DB_NAME(db_id()))   
    + N'.'   
    + QUOTENAME(OBJECT_SCHEMA_NAME(object_id, db_id()))   
    + N'.'   
    + QUOTENAME(OBJECT_NAME(object_id, db_id()))  
    , *   
FROM sys.objects;
GO  
I följande exempel returneras databasen, schemat och objektnamnet tillsammans med alla andra kolumner i den sys.dm_db_index_operational_stats dynamiska hanteringsvyn för alla objekt i alla databaser.
              gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SELECT QUOTENAME(DB_NAME(database_id))   
    + N'.'   
    + QUOTENAME(OBJECT_SCHEMA_NAME(object_id, database_id))   
    + N'.'   
    + QUOTENAME(OBJECT_NAME(object_id, database_id))  
    , *   
FROM sys.dm_db_index_operational_stats(null, null, null, null);  
GO