Nazwa_obiektu (Transact-SQL)
Zwraca nazwę obiektu bazy danych dla obiektów o zakresie schematu.Lista obiektów o zakresie schematu, zobacz sys.Objects (Transact-SQL).
Składnia
OBJECT_NAME ( object_id [, database_id ] )
Argumenty
object_id
Jest to identyfikator obiektu ma być używany.object_idjest int i jest przyjmowany jako obiektu o zakresie schematu w określonej bazy danych lub bieżącego kontekstu bazy danych.database_id
Jest Identyfikatorem bazy danych, w którym obiekt ma być wyszukiwana.database_idis int.
Zwracane typy
sysname
Wyjątki
Zwraca wartość NULL w błąd lub jeśli wywołujący nie ma uprawnień do wyświetlenia obiektu.Jeśli miejsce docelowe baza danych ma AUTO_CLOSE opcję zestaw na, funkcja otwiera bazę danych.
Użytkownik może tylko przeglądać metadane securables, który użytkownik jest właścicielem lub dla którego użytkownik ma uprawnienia.Oznacza to, że metadane-wysyłających, funkcje wbudowane takie jak nazwa_obiektu może zwracać wartość NULL, jeśli użytkownik nie ma żadnych uprawnień do obiektu.Aby uzyskać więcej informacji, zobacz Konfiguracja widoczność metadanych i Rozwiązywanie problemów z metadanych widoczności.
Uprawnienia
Wymaga wszelkie uprawnienia dla obiektu.Aby określić identyfikator bazy danych, łączenie z bazą danych wymagane jest uprawnienie także lub należy włączyć konto gościa.
Uwagi
Funkcje systemu mogą być używane w liście, w którym klauzulai dowolnym wyrażenie jest dozwolone.Aby uzyskać więcej informacji, zobacz wyrażeń i gdzie.
Wartość zwracana przez funkcja systemu używa sortowanie bieżącej bazy danych.
Domyślnie Aparat baz danych programu SQL Server zakłada się, że object_id w kontekście bieżącej bazy danych.Kwerendy, która odwołuje się do object_id w innej bazie danych zwraca wartość NULL lub niepoprawne wyniki.Na przykład, poniższa kwerenda kontekście bieżącej bazy danych jest AdventureWorks2008R2.Aparat baz danych Próbuje przywrócić nazwy obiektu dla Identyfikatora określonego obiektu w bazie danych zamiast bazy danych określonej w klauzula FROM kwerendy.W związku z tym zwracane są niepoprawne informacje.
USE AdventureWorks2008R2;
GO
SELECT DISTINCT OBJECT_NAME(object_id)
FROM master.sys.objects;
GO
Nazwy obiektów w kontekście innej bazy danych można rozwiązać przez określenie identyfikatora bazy danych.W następującym przykładzie określono identyfikator bazy danych dla master bazy danych w OBJECT_SCHEMA_NAME funkcja i zwraca poprawnych wyniki.
USE AdventureWorks2008R2;
GO
SELECT DISTINCT OBJECT_SCHEMA_NAME(object_id, 1) AS schema_name
FROM master.sys.objects;
GO
Przykłady
A.Za pomocą nazwa_obiektu w klauzulaWHERE
Poniższy przykład zwraca kolumny z sys.objects Widok wykazu dla obiektu określonego przez OBJECT_NAME w WHERE klauzula SELECT instrukcja.
USE AdventureWorks2008R2;
GO
DECLARE @MyID int;
SET @MyID = (SELECT OBJECT_ID('AdventureWorks2008R2.Production.Product',
'U'));
SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(@MyID);
GO
B.Zwraca nazwę schematu obiektu i nazwa obiektu
Poniższy przykład zwraca nazwę schematu obiektu, nazwa obiektu i tekst wszystkich planów kwerend pamięci podręcznej, które nie są ad hoc lub przygotowanych instrukcji SQL .
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_text
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
C.Zwracanie nazw obiektów trzech części
Poniższy przykład zwraca bazy danych, schematu i nazwa obiektu wraz z innych kolumn w sys.dm_db_index_operational_stats dynamiczny widok zarządzania dla wszystkich obiektów wszystkich baz danych.
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
Zobacz także