| Termin | Definicja |
|---|---|
| SCHEMA_BINDING | SCHEMA_BINDING wiąże obiekt z definicją tabel źródłowych, uniemożliwiając ich zmianę bez usunięcia powiązania. SCHEMABINDING w silniku Microsoft SQL ServerSCHEMA_BINDING to określenie odnoszące się do mechanizmu W praktyce schemat źródłowy nie może zostać zmieniony w sposób kolidujący z obiektem oznaczonym jako schemabound. Próba usunięcia kolumny używanej przez taki widok lub funkcję, zmiany jej typu w niedozwolony sposób albo usunięcia tabeli może zakończyć się błędem. Najpierw trzeba usunąć lub zmodyfikować obiekt zależny, a dopiero później wykonać zmianę w tabeli źródłowej. Mechanizm nie blokuje jednak każdej możliwej modyfikacji danych. Dodawanie i aktualizowanie rekordów jest czym innym niż zmiana definicji tabeli. Jak powstaje zależność między obiektem a tabeląObiekt tworzony z opcją Przykładowy widok może zostać zdefiniowany jako Skutki dla zmian, wdrożeń i zależnościNajważniejszą korzyścią jest wcześniejsze wykrywanie zmian niezgodnych z kontraktem obiektu. Bez wiązania schematu modyfikacja tabeli może spowodować, że późniejsze odwołanie do widoku lub funkcji przestanie działać. Przy schemabinding SQL Server odrzuca część takich zmian już podczas wykonywania instrukcji DDL. Ogranicza to ryzyko przypadkowego usunięcia kolumny wykorzystywanej przez raport, funkcję obliczeniową albo inny obiekt zależny. Wiązanie schematu wpływa również na kolejność wdrażania zmian. Jeżeli konieczna jest zmiana typu kolumny, jej nazwy lub struktury tabeli, należy najpierw ustalić wszystkie zależności, a następnie zaplanować modyfikację obiektów zależnych. Pomocne są widoki katalogowe takie jak Rozpoznawanie problemu z SCHEMA_BINDINGPodczas diagnostyki należy sprawdzić dokładną definicję obiektu, jego schemat właściciela oraz wszystkie używane tabele, widoki i funkcje. Nieprawidłowość może wynikać z próby zmiany kolumny zablokowanej przez zależny widok, z użycia nazwy jedno-członowej albo z przeniesienia obiektu do innej bazy danych. Błąd może pojawić się także podczas wdrażania skryptu, gdy skrypt zakłada kolejność odwrotną do wymaganej przez zależności. Pomocne jest odczytanie treści definicji przez Naprawa powinna polegać na świadomym uporządkowaniu zależności, a nie na przypadkowym usuwaniu blokady. Najpierw należy ustalić, czy obiekt rzeczywiście musi zachować ochronę schematu. Jeżeli tak, trzeba dostosować zmianę tabeli do istniejącej definicji albo zmienić obiekt zależny w kontrolowanym wdrożeniu. Jeżeli wiązanie jest już nieaktualne, można usunąć i odtworzyć obiekt z poprawną definicją, po wcześniejszym sprawdzeniu zapytań, indeksów i zależnych elementów aplikacji. SCHEMA_BINDING opisuje więc kontrolę struktury obiektów SQL Server, a nie mechanizm ochrony samych rekordów. |