Implementowanie zestawów
Dotyczy:programu SQL Server
Ten artykuł zawiera informacje o następujących obszarach, które ułatwiają implementowanie zestawów i pracę z zestawami w bazie danych:
- Tworzenie zestawów
- Modyfikowanie zestawów
- Usuwanie, wyłączanie i włączanie zestawów
- Zarządzanie wersjami zestawów
Tworzenie zestawów
Zestawy są tworzone w programie SQL Server przy użyciu instrukcji Transact-SQL CREATE ASSEMBLY
lub w programie SQL Server Management Studio przy użyciu edytora asystowanego zestawu. Ponadto wdrożenie projektu programu SQL Server w programie Visual Studio rejestruje zestaw w bazie danych określonej dla projektu. Aby uzyskać więcej informacji, zobacz Deploy CLR database objects.
- W języku Transact-SQL: CREATE ASSEMBLY (Transact-SQL)
- W programie SQL Server Management Studio: właściwości zestawu
Modyfikowanie zestawów
Zestawy są modyfikowane w programie SQL Server przy użyciu instrukcji Transact-SQL ALTER ASSEMBLY
lub programu SQL Server Management Studio przy użyciu edytora asystowanego zestawu.
- W języku Transact-SQL: ALTER ASSEMBLY (Transact-SQL)
- W programie SQL Server Management Studio: właściwości zestawu
Zestaw można zmodyfikować, gdy chcesz wykonać następujące akcje:
Zmień implementację zestawu, przekazując nowszą wersję plików binarnych zestawu. Aby uzyskać więcej informacji, zobacz Zarządzanie wersjami zestawów w dalszej części tego artykułu.
Zmień zestaw uprawnień zestawu. Aby uzyskać więcej informacji, zobacz Design assemblies.
Zmień widoczność zestawu. Widoczne zestawy są dostępne do odwoływania się do programu SQL Server. Zestawy nienadzorowane nie są dostępne, nawet jeśli są one przekazywane w bazie danych. Domyślnie zestawy przekazywane do wystąpienia programu SQL Server są widoczne.
Dodaj lub upuść plik debugowania lub źródła skojarzony z zestawem.
Usuwanie, wyłączanie i włączanie zestawów
Zestawy są porzucane przy użyciu instrukcji Transact-SQL DROP ASSEMBLY
lub programu SQL Server Management Studio.
- W języku Transact-SQL: DROP ASSEMBLY (Transact-SQL)
- Za pomocą programu SQL Server Management Studio: usuwanie obiektów
Domyślnie wszystkie zestawy utworzone w programie SQL Server są wyłączone z wykonywania. Możesz użyć opcji clr enabled
procedury składowanej systemu sp_configure
, aby wyłączyć lub włączyć wykonywanie wszystkich zestawów przekazanych w programie SQL Server. Wyłączenie wykonywania zestawu uniemożliwia wykonywanie funkcji środowiska uruchomieniowego języka wspólnego (CLR), procedur składowanych, wyzwalaczy, agregacji i typów zdefiniowanych przez użytkownika oraz uniemożliwia wykonywanie wszystkich aktualnie wykonywanych typów. Wyłączenie wykonywania zestawu nie powoduje wyłączenia możliwości tworzenia, modyfikowania ani upuszczania zestawów. Aby uzyskać więcej informacji, zobacz Server configuration: clr enabled.
Aby uzyskać więcej informacji, zobacz sp_configure.
Zarządzanie wersjami zestawów
Po przekazaniu zestawu do wystąpienia programu SQL Server zestaw jest przechowywany i zarządzany w wykazach systemu bazy danych. Wszelkie zmiany wprowadzone w definicji zestawu w programie .NET Framework powinny być propagowane do zestawu przechowywanego w wykazie baz danych.
Podczas modyfikowania zestawu należy wydać instrukcję ALTER ASSEMBLY
, aby zaktualizować zestaw w bazie danych. Ta instrukcja aktualizuje zestaw do najnowszej kopii modułów programu .NET Framework, które przechowują jego implementację.
Klauzula WITH UNCHECKED DATA
instrukcji ALTER ASSEMBLY
nakazuje programowi SQL Server odświeżanie nawet tych zestawów, na których są zależne utrwalone dane w bazie danych. W szczególności należy określić WITH UNCHECKED DATA
, jeśli istnieją następujące elementy:
Utrwalone obliczone kolumny odwołujące się do metod w zestawie bezpośrednio lub pośrednio za pośrednictwem Transact-SQL funkcji lub metod.
Kolumny typu zdefiniowanego przez użytkownika CLR, które zależą od zestawu, a typ implementuje format serializacji
UserDefined
(bezNative
).
Ostrożność
Jeśli nie określono WITH UNCHECKED DATA
, program SQL Server próbuje zapobiec ALTER ASSEMBLY
wykonywania, jeśli nowa wersja zestawu wpłynie na istniejące dane w tabelach, indeksach lub innych witrynach trwałych. Jednak program SQL Server nie gwarantuje, że obliczone kolumny, indeksy, indeksowane widoki lub wyrażenia będą zgodne z podstawowymi procedurami i typami po zaktualizowaniu zestawu CLR. Należy zachować ostrożność podczas wykonywania ALTER ASSEMBLY
, aby upewnić się, że nie ma niezgodności między wynikiem wyrażenia a wartością opartą na tym wyrażeniu przechowywanym w zestawie.
Tylko członkowie db_owner i stałej roli stałej bazy danych db_ddlowner mogą wykonywać ALTER ASSEMBLY
przy użyciu klauzuli WITH UNCHECKED DATA
.
Program SQL Server publikuje komunikat w dzienniku zdarzeń aplikacji systemu Windows, że zestaw został zmodyfikowany bez zaznaczenia danych w tabelach. Następnie program SQL Server oznacza wszystkie tabele zawierające dane zależne od zestawu jako niezaznaczone dane. Kolumna has_unchecked_assembly_data
widoku wykazu sys.tables
zawiera 1
wartości dla tabel, które zawierają niezaznaczone dane, oraz 0
dla tabel bez niezaznaczonego danych.
Aby rozwiązać problem z integralnością niezaznaczonego danych, uruchom DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS
względem każdej tabeli, która ma niezaznaczone dane. Jeśli DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS
się nie powiedzie, musisz usunąć wiersze tabeli, które nie są prawidłowe lub zmodyfikować kod zestawu, aby rozwiązać problemy, a następnie wydać więcej instrukcji ALTER ASSEMBLY
.
ALTER ASSEMBLY
zmienia wersję zestawu. Token kultury i klucza publicznego zestawu pozostają takie same. Program SQL Server nie zezwala na rejestrowanie różnych wersji zestawu o tej samej nazwie, kulturze i kluczu publicznym.
Interakcje z zasadami dla całego komputera na potrzeby powiązania wersji
Jeśli odwołania do zestawów przechowywanych w programie SQL Server są przekierowywane do określonych wersji przy użyciu zasad wydawcy lub zasad administratora dla całego komputera, należy wykonać jedną z następujących akcji:
Upewnij się, że nowa wersja, do której jest wykonywane przekierowanie, znajduje się w bazie danych.
Zmodyfikuj wszystkie instrukcje do plików zasad zewnętrznych komputera lub wydawcy, aby upewnić się, że odwołują się do określonej wersji, która znajduje się w bazie danych.
W przeciwnym razie próba załadowania nowej wersji zestawu do wystąpienia programu SQL Server kończy się niepowodzeniem.
Aby uzyskać więcej informacji, zobacz ALTER ASSEMBLY.
Powiązana zawartość
- zestawów
(aparat bazy danych) - Uzyskiwanie informacji o zestawach