Udostępnij za pośrednictwem


Projektowanie i wdrażanie widoki

Przed utworzeniem widoku, należy wziąć pod uwagę następujące wskazówki:

  • Widoki można tworzyć tylko w bieżącej bazie danych.Jednak w innych bazach danych może istnieć tabele i widoki, do którego odnosi się nowy widok lub nawet inne serwery, jeśli widok został zdefiniowany za pomocą rozproszonego kwerendy.

  • Wyświetlanie nazwy muszą być zgodne z zasadami dla identyfikatorów i musi być unikatowy dla każdego schematu.Dodatkowo nazwa nie musi być taki sam, jak wszystkie tabele, zawarte w tym schemacie.

  • You can build views on other views.Microsoft SQL Server allows views to be nested.Zagnieżdżanie nie może przekraczać 32 poziomy.Rzeczywiste limit zagnieżdżania widoków może być niższa w zależności od złożoności widoku i dostępnej pamięci.

  • Reguły i definicje DEFAULT nie można skojarzyć z widoków.

  • Z widoków, a nie z wyzwalaczy, nie można skojarzyć później wyzwalaczy.

  • Definiowanie widoku kwerendy nie mogą zawierać klauzule COMPUTE lub COMPUTE BY lub słowa kluczowego INTO.

  • Definiowanie widoku kwerendy nie może zawierać klauzula ORDER BY, chyba że dostępna jest również klauzulę TOP na liście select instrukcja SELECT.

  • Definiowanie widoku kwerendy nie może zawierać OPCJĘ klauzula Określanie wskazówki dotyczącej kwerendy.

  • Definiowanie widoku kwerendy nie może zawierać klauzulę TABLESAMPLE.

  • Nie można definiować definicji indeksu pełnotekstowego w widokach.

  • Nie można utworzyć widoki tymczasowy i nie można utworzyć widoki na tabelach tymczasowych.

  • Widoki, tabele lub funkcji biorących udział w widoku utworzone za pomocą klauzula SCHEMABINDING nie można go usunąć, chyba że w widoku jest usunięte lub zmienione tak, aby go nie ma już wiązanie schematu.Ponadto instrukcji ALTER tabela na tabele uczestniczące w widokach o wiązanie schematu zakończy się niepowodzeniem, jeśli instrukcje te mają wpływ na definicję widoku.

  • Jeśli widok nie została utworzona za pomocą klauzula SCHEMABINDING sp_refreshview powinien być uruchamiany, gdy zostaną wprowadzone zmiany do obiektów będących podstawą widoku wpływające na definicję widoku.sp_update_category

  • Kwerendy pełnego tekstu wobec widoku, nie można wydać, chociaż definicja widoku może zawierać zapytanie pełnotekstowe, jeśli kwerenda odwołuje się do tabela, który został skonfigurowany dla indeksowania pełnotekstowego.

  • Należy określić nazwę każdej kolumna w widoku, jeśli:

    • Żadna z kolumn w widoku są obliczane na podstawie wyrażenie arytmetyczne, wbudowanych funkcja lub stała.

    • Dwie lub więcej kolumn w widoku w przeciwnym razie miałoby to samo nazw (zwykle ponieważ definicji widoku zawiera łączyć, a kolumny z dwóch lub więcej różnych tabel mają taką samą nazwę).

    • Należy podać dowolnej kolumny w widoku innym niż kolumna, z którego pochodzi nazwę.(Można również zmienić nazwy kolumn w widoku.) kolumna widoku dziedziczy typ danych kolumna, z którego pochodzi, niezależnie od tego, czy w przypadku zmiany nazwy.

      Uwaga

      Ta reguła nie jest stosowane, gdy widok jest oparty na podstawie kwerendy zawierającej łączyć zewnętrzne, ponieważ kolumn może ulec zmianie z nie zezwala na wartości null do pozwalające im.

      Otherwise, you do not need to specify column names when creating the view.SQL Server gives the columns of the view the same names and data types as the columns to which the query defining the view refers.Lista wyboru może być pełny lub częściowy listę nazw kolumn w tabeli podstawowej.

Aby utworzyć widok, wymagane jest uprawnienie uprawnienia, aby to zrobić przez właściciela bazy danych, a widok jest tworzone za pomocą klauzula SCHEMABINDING, trzeba mieć odpowiednie uprawnienia na wszystkich tabel lub widoków w definicji widoku.

Domyślnie jak wiersze są dodawane lub aktualizowane, korzystając z widoku one znikają z zakres widok nie jest już stają się one do kryteriów kwerendy, Definiowanie widoku.Na przykład kwerendy mogą być tworzone, Definiowanie widoku, który pobiera wszystkie wiersze z tabela, w której wynagrodzenia dla pracownika jest mniej niż 30 000 zł.Jeśli wynagrodzenia dla pracownika jest zwiększony do 32 000 zł, a następnie kwerendy w widoku nie będzie już wyświetlany określonego pracownika, ponieważ jego wynagrodzenia nie jest zgodna z kryteriami zestaw przez widok.Jednak klauzula WITH OPTION Sprawdź zmusza wszystkie instrukcje modyfikacji danych wykonywane przed widoku, który ma być zgodne z kryteriami zestaw w instrukcja SELECT, Definiowanie widoku.Jeśli używasz tej klauzula wiersze nie mogą być modyfikowane w taki sposób, że powoduje, że ich znikają z widoku.Spowodowałoby to się zdarzyć, modyfikacji zostanie anulowany i wyświetlany jest błąd.

Aby utworzyć widok