Querying the SQL Server System Catalog FAQ

Ten temat zawiera listę często zadawanych pytań.Odpowiedzi na te pytania są kwerendy, które są oparte na katalogu widoków.

Często zadawane pytania

W sekcjach poniżej listy często zadawane pytania dotyczące według kategorii.

Typy danych

  • Jak znaleźć typy danych kolumn z określonej tabela?

  • Jak znaleźć typy dane LOB określonej tabela?

  • W jaki sposób można znaleźć kolumny, które zależą od typu danych określonego?

  • Jak znaleźć kolumny obliczane, które zależą od określonego środowiska CLR typ zdefiniowany przez użytkownika lub alias typu danych?

  • Jak znaleźć parametry, które zależą od określonego środowiska CLR typ zdefiniowany przez użytkownika lub typ aliasu?

  • Jak znaleźć ograniczeń typu CHECK, które zależą od określonego środowiska CLR typ zdefiniowany przez użytkownika?

  • Jak znaleźć widoków, funkcji języka Transact-SQL i procedury przechowywanej języka Transact-SQL, które zależą od określonego środowiska CLR typ zdefiniowany przez użytkownika lub typ aliasu?

Tabele, widoki, indeksy i ograniczenia

  • Jak znaleźć wszystkie tabele wymagane przez użytkownika w określonej bazie danych?

  • Jak znaleźć wszystkie tabele, które nie mają indeks klastrowany w określonej bazie danych?

  • Jak znaleźć wszystkie tabele, które nie mają indeks?

  • Jak znaleźć wszystkie tabele, które nie mają klucz podstawowy?

  • Jak znaleźć wszystkie tabele, które mają kolumna tożsamości?

  • Jak znaleźć wszystkie tabele i indeksy, które są podzielone na partycje?

  • Jak znaleźć wszystkich widoków w bazie danych?

  • W jaki sposób można znaleźć definicji widoku?

  • Jak znaleźć wszystkie obiekty, które zostały zmodyfikowane w ciągu ostatnich dni N?

  • W jaki sposób można znaleźć kolumny klucz podstawowy dla określonej tabela?

  • W jaki sposób można znaleźć kolumny klucz obcy dla określonej tabela?

  • Jak ustalić, czy kolumna jest używane przez kolumna obliczana wyrażenie?

  • Jak znaleźć wszystkie kolumna, które są używane w postaci wyrażenie dla kolumna obliczeniowej?

  • Jak znaleźć wszystkie ograniczenia dla określonej tabela?

  • Jak znaleźć wszystkie indeksy dla określonej tabela?

  • Jak znaleźć wszystkie tabele, które mają nazwy określonej kolumna?

  • Jak znaleźć wszystkie statystyki dla określonego obiektu?

  • Jak znaleźć wszystkie statystyki i statystyki kolumny na określony obiekt?

Moduły (procedury przechowywane, funkcje zdefiniowane przez użytkownika i wyzwalacze)

  • Jak znaleźć wszystkich procedur przechowywanych w bazie danych?

  • Jak znaleźć wszystkie funkcje zdefiniowane przez użytkownika w bazie danych?

  • Jak znaleźć parametry dla określonej procedura przechowywana lub funkcja?

  • Jak znaleźć zależności w podanej funkcja?

  • Jak wyświetlić definicję modułu?

  • Jak wyświetlić definicji wyzwalacza poziomie serwera?

Schematy, użytkowników, ról i uprawnień

  • Jak znaleźć wszystkich właścicieli podmiotów zawartych w określonym schemacie?

  • Jak znaleźć uprawnienia udzielone lub odmówione do określonego głównego?

Odpowiedzi

Jak znaleźć wszystkie tabele, które nie mają indeks klastrowany w określonej bazie danych?

Przed uruchomieniem następujące kwerendy należy zastąpić <database_name> z prawidłową nazwę bazy danych.

Lub użyć OBJECTPROPERTY funkcja jak to pokazano w poniższym przykładzie.

U GÓRY

Jak znaleźć wszystkich właścicieli podmiotów zawartych w określonym schemacie?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name> prawidłowe nazwy.

U GÓRY

Jak znaleźć wszystkie tabele, które nie mają klucz podstawowy?

Przed uruchomieniem następujące kwerendy należy zastąpić <database_name> z prawidłową nazwę bazy danych.

Ewentualnie można uruchomić następującą kwerendę.

U GÓRY

Jak znaleźć wszystkie tabele, które nie mają indeks?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> z prawidłową nazwę bazy danych.

U GÓRY

Jak znaleźć wszystkie tabele, które mają kolumna tożsamości?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> z prawidłową nazwę bazy danych.

Ewentualnie można uruchomić następującą kwerendę.

Uwaga

Ta kwerenda nie zwraca nazw kolumn.

U GÓRY

Jak znaleźć typy danych kolumn z określonej tabela?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.table_name> prawidłowe nazwy.

U GÓRY

Jak znaleźć zależności w podanej funkcja?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.function_name> prawidłowe nazwy.

U GÓRY

Jak znaleźć wszystkich procedur przechowywanych w bazie danych?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy.

U GÓRY

Jak znaleźć parametry dla określonej procedura przechowywana lub funkcja?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.object_name> prawidłowe nazwy.

U GÓRY

Jak znaleźć wszystkie funkcje zdefiniowane przez użytkownika w bazie danych?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> z prawidłową nazwę bazy danych.

U GÓRY

Jak znaleźć wszystkich widoków w bazie danych?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> z prawidłową nazwę bazy danych.

U GÓRY

Jak znaleźć wszystkie obiekty, które zostały zmodyfikowane w ciągu ostatnich dni N?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <n_days> Prawidłowe wartości.

U GÓRY

Jak znaleźć typy dane LOB określonej tabela?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.table_name> prawidłowe nazwy.

U GÓRY

Jak wyświetlić definicję modułu?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.object_name> prawidłowe nazwy.

Lub użyć OBJECT_DEFINITION działanie, jak pokazano w poniższym przykładzie.

U GÓRY

Jak wyświetlić definicji wyzwalacza poziomie serwera?

U GÓRY

W jaki sposób można znaleźć kolumny klucz podstawowy dla określonej tabela?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.table_name> prawidłowe nazwy.

Lub użyć COL_NAME funkcja jak to pokazano w poniższym przykładzie.

U GÓRY

W jaki sposób można znaleźć kolumny klucz obcy dla określonej tabela?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.table_name> prawidłowe nazwy.

U GÓRY

Jak znaleźć uprawnienia udzielone lub odmówione do określonego głównego?

Poniższy przykład tworzy funkcja, aby zwrócić nazwę obiektu, na którym są sprawdzane uprawnienia.Funkcja jest wywoływana w kwerendach, które należy wykonać.Funkcja musi zostać utworzony w każdej bazie danych, w którym chcesz sprawdzić uprawnienia.

U GÓRY

Jak ustalić, czy kolumna jest używane przez kolumna obliczana wyrażenie?

Przed uruchomieniem następującą kwerendę zastąpić <database_name>, <schema_name.table_name>, a <column_name> prawidłowe nazwy.

U GÓRY

Jak znaleźć wszystkie kolumna, które są używane w postaci wyrażenie dla kolumna obliczeniowej?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy.

U GÓRY

Jak znaleźć kolumny, które zależą od określonego środowiska CLR typ zdefiniowany przez użytkownika lub typ aliasu?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy i <schema_name.data_type_name> z prawidłowym kwalifikacje schematu CLR typ zdefiniowany przez użytkownikalub kwalifikowaną schematu alias nazwy typu.Członkostwo w grupie wymaga następującej kwerendy db_owner Rola lub uprawnienia, aby wyświetlić wszystkie kolumny zależnej i kolumna obliczana metadane w bazie danych.

Następująca kwerenda zwraca widokiem ograniczonych i wąskie kolumny zależne CLR typ zdefiniowany przez użytkownika lub alias, ale w zestawie wyników są widoczne dla publiczne roli.Można użyć tej kwerendy, jeśli zostały przyznane uprawnienia REFERENCE na typ zdefiniowany przez użytkownika do innych osób i które nie mają uprawnień do oglądania metadane obiekty utworzone przez innych użytkowników, które należy użyć typu.

U GÓRY

Jak znaleźć obliczanych kolumn, które są zależne od określonego typu CLR zdefiniowanej przez użytkownika lub alias typu?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy i <schema_name.data_type_name> z prawidłowym kwalifikacje schematu CLR typ zdefiniowany przez użytkownika, alias nazwy typu.Aby uzyskać więcej informacji o zależnościach kolumna obliczana zobacz Understanding SQL Dependencies.

U GÓRY

Jak znaleźć parametry, które zależą od określonego środowiska CLR typ zdefiniowany przez użytkownika lub typ aliasu?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy i <schema_name.data_type_name> z prawidłowym kwalifikacje schematu CLR typ zdefiniowany przez użytkownika, alias nazwy typu.Członkostwo w grupie wymaga następującej kwerendy db_owner Rola lub uprawnienia, aby wyświetlić wszystkie kolumny zależnej i kolumna obliczana metadane w bazie danych.

Następująca kwerenda zwraca ograniczone do wąskiego widoku parametrów, które zależą od CLR typ zdefiniowany przez użytkownika lub alias, ale zestaw wyników są widoczne dla publiczne roli.Można użyć tej kwerendy, jeśli zostały przyznane uprawnienia REFERENCE na typ zdefiniowany przez użytkownika do innych osób i które nie mają uprawnień do oglądania metadane obiekty utworzone przez innych użytkowników, które należy użyć typu.

U GÓRY

Jak znaleźć ograniczeń typu CHECK, które zależą od określonego środowiska CLR typ zdefiniowany przez użytkownika?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy i <schema_name.data_type_name> z prawidłowym kwalifikacje schematu CLR typ zdefiniowany przez użytkownika nazwa.

U GÓRY

Jak znaleźć widoków, funkcji języka Transact-SQL i procedury przechowywanej języka Transact-SQL, które zależą od określonego środowiska CLR typ zdefiniowany przez użytkownika lub typ aliasu?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy i <schema_name.data_type_name> z prawidłowym kwalifikacje schematu CLR typ zdefiniowany przez użytkownika, alias nazwy typu.

Parametry określone w funkcja lub procedury są niejawnie schematu powiązane.W związku z tym, parametry, które zależą od CLR typ zdefiniowany przez użytkownika lub typ alias można wyświetlić przy użyciu sys.sql_dependencies Służy do wyświetlania katalogu. Procedury i wyzwalacze nie są powiązane schematu.Oznacza to, że zależności między dowolnym wyrażeniem zdefiniowane w treści procedury lub wyzwalacz oraz CLR typ zdefiniowany przez użytkownika lub typ aliasu nie jest zachowywane.Schematu związany widoki i funkcje zdefiniowane przez użytkownika, które mają wyrażeń, które są zależne od typ zdefiniowany przez użytkownika CLR powiązane schematu lub typ alias są obsługiwane w sys.sql_dependencies Służy do wyświetlania katalogu. Nie zachowywane są zależności między typami i CLR funkcje i procedury środowiska CLR.

Następująca kwerenda zwraca wszystkie zależności związanych ze schematem w widokach Transact-SQL Funkcje, a Transact-SQL procedury przechowywane dla określonego typu CLR zdefiniowanej przez użytkownika lub typ alias.

U GÓRY

Jak znaleźć wszystkie ograniczenia dla określonej tabela?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.table_name> prawidłowe nazwy.

U GÓRY

Jak znaleźć wszystkie indeksy dla określonej tabela?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.table_name> prawidłowe nazwy.

U GÓRY

Jak znaleźć wszystkie obiekty, które mają nazwy określonej kolumna?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <column_name> prawidłowe nazwy.

Or

U GÓRY

Jak znaleźć wszystkie tabele wymagane przez użytkownika w określonej bazie danych?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy.

U GÓRY

Jak znaleźć wszystkie tabele i indeksy, które są podzielone na partycje?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy.

U GÓRY

Jak znaleźć wszystkie statystyki dla określonego obiektu?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy i <schema_name.object_name> prawidłowa tabela, widok indeksowany lub nazwy funkcja zwracająca tabelę.

U GÓRY

Jak znaleźć wszystkie statystyki i statystyki kolumny na określony obiekt?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> przy użyciu prawidłowej nazwy i <schema_name.object_name> prawidłowa tabela, widok indeksowany lub nazwy funkcja zwracająca tabelę.

U GÓRY

W jaki sposób można znaleźć definicji widoku?

Przed uruchomieniem następującą kwerendę zastąpić <database_name> i <schema_name.object_name> prawidłowe nazwy.

Lub użyć OBJECT_DEFINITION działanie, jak pokazano w poniższym przykładzie.

U GÓRY