Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Zwraca nazwę schematu bazy danych dla obiektów o zakresie schematu. Aby uzyskać listę obiektów o zakresie schematu, zobacz sys.objects (Transact-SQL).
Transact-SQL konwencje składni
Składnia
OBJECT_SCHEMA_NAME ( object_id [, database_id ] )
Arguments
object_id
Identyfikator obiektu do użycia. object_id jest int i zakłada się, że jest obiektem o zakresie schematu w określonej bazie danych lub w bieżącym kontekście bazy danych.
database_id
Identyfikator bazy danych, w której ma być wyszukany obiekt. database_id jest int.
Typy zwracane
sysname
Exceptions
Zwraca wartość NULL w przypadku błędu lub jeśli obiekt wywołujący nie ma uprawnień do wyświetlania obiektu. Jeśli docelowa baza danych ma opcję AUTO_CLOSE ustawioną na WŁ., funkcja otwiera bazę danych.
Użytkownik może wyświetlać tylko metadane zabezpieczanych, które użytkownik jest właścicielem lub którym użytkownik udzielił uprawnień. Funkcje wbudowane emitujące metadane, takie jak OBJECT_SCHEMA_NAME mogą zwracać wartość NULL, jeśli użytkownik nie ma żadnych uprawnień do obiektu. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.
Permissions
Wymaga uprawnień ANY w obiekcie. Aby określić identyfikator bazy danych, wymagane jest również uprawnienie CONNECT do bazy danych lub konto gościa musi być włączone.
Uwagi
Funkcje systemowe mogą być używane na liście wyboru, w klauzuli WHERE i w dowolnym miejscu, w którym dozwolone jest wyrażenie. Aby uzyskać więcej informacji, zobacz Wyrażenia i GDZIE.
Zestaw wyników zwrócony przez tę funkcję systemową używa sortowania bieżącej bazy danych.
Jeśli nie określono database_id , aparat bazy danych programu SQL Server zakłada, że object_id znajduje się on w kontekście bieżącej bazy danych. Zapytanie odwołujące się do elementu object_id w innej bazie danych zwraca wartość NULL lub niepoprawne wyniki. Na przykład w poniższym zapytaniu kontekst aktualnej bazy danych to AdventureWorks2025. Aparat bazy danych próbuje zwrócić nazwę schematu obiektu dla określonej object_id w bieżącej bazie danych zamiast bazy danych określonej w klauzuli FROM zapytania. W związku z tym zwracane są nieprawidłowe informacje.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id)
FROM master.sys.objects;
Poniższy przykład określa identyfikator bazy danych dla master bazy danych w OBJECT_SCHEMA_NAME funkcji i zwraca poprawne wyniki.
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
Przykłady
A. Zwraca nazwę schematu obiektu i nazwę obiektu
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Poniższy przykład zwraca nazwę schematu obiektu, nazwę obiektu i tekst SQL dla wszystkich buforowanych planów zapytań, które nie są instrukcjami ad hoc ani przygotowanymi.
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. Zwracanie nazw obiektów trójczęściowych
Poniższy przykład zwraca nazwę bazy danych, schematu i obiektu dla wszystkich obiektów w bieżącym kontekście bazy danych.
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
Poniższy przykład zwraca nazwę bazy danych, schematu i obiektu wraz ze wszystkimi innymi kolumnami w sys.dm_db_index_operational_stats dynamicznym widoku zarządzania dla wszystkich obiektów we wszystkich bazach danych.
Dotyczy: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