Udostępnij za pośrednictwem


Zmiana zestawu (Transact-SQL)

Zmienia wirtualny plik dziennika modyfikując SQL Server Wykaz właściwości wirtualny plik dziennika.Zmiana zestawu odświeża go do najnowszej kopii Microsoft .NET Framework moduły, które przytrzymaj jej wykonania oraz dodaje lub usuwa pliki skojarzone z goZespoły są tworzone za pomocą Tworzenie zestawu.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

ALTER ASSEMBLY assembly_name
    [ FROM <client_assembly_specifier> | <assembly_bits> ]
    [ WITH <assembly_option> [ ,...n ] ]
    [ DROP FILE { file_name [ ,...n ] | ALL } ]
    [ ADD FILE FROM 
    { 
                client_file_specifier [ AS file_name ] 
      | file_bits AS file_name 
    } [,...n ] 
    ] [ ; ]
<client_assembly_specifier> :: =
        '\\computer_name\share-name\[path\]manifest_file_name'
  | '[local_path\]manifest_file_name'

<assembly_bits> :: =
    { varbinary_literal | varbinary_expression }

<assembly_option> :: =
    PERMISSION_SET = { SAFE | EXTERNAL_ACCESS | UNSAFE } 
  | VISIBILITY = { ON | OFF }
  | UNCHECKED DATA

Argumenty

  • assembly_name
    Jest to nazwa wirtualny plik dziennika , który chcesz zmodyfikować.assembly_namemusi istnieć w bazie danych.

  • Z <client_assembly_specifier> | <specyfikatorze>
    Aktualizuje wirtualny plik dziennika do najnowszej kopii .NET Framework moduły, które przytrzymaj jego wykonania.Tej opcji należy używać, tylko jeśli nie ma skojarzonych plików z określonego wirtualny plik dziennika.

    <client_assembly_specifier> określa sieci lub lokalizacja lokalna, gdzie znajduje się wirtualny plik dziennika jest odświeżany.Lokalizacja sieciowa zawiera nazwę komputera, nazwę udziału i ścieżka w ramach tego udziału.manifest_file_name Określa nazwę pliku, który zawiera manifest wirtualny plik dziennika.

    <specyfikatorze> jest wartość binarna dla wirtualny plik dziennika.

    Dla zależne zestawy, które wymagają aktualizacji, musi zostać wydane oddzielne instrukcji ALTER zestawu.

  • PERMISSION_SET = {BEZPIECZNE | EXTERNAL_ACCESS | NIEBEZPIECZNE}
    Określa .NET Framework kod dostępu uprawnienia zestaw właściwość wirtualny plik dziennika.Aby uzyskać więcej informacji dotyczących tej właściwość, zobacz Tworzenie zestawu (Transact-SQL).

  • WIDOCZNOŚĆ = {ON | OFF}
    Wskazuje, czy wirtualny plik dziennika jest widoczny dla tworzenia typowych funkcji runtime (CLR) języka, procedur przechowywanych, wyzwalaczy, typów zdefiniowanych przez użytkownika i zdefiniowane przez użytkownika wartość zagregowana funkcje wobec niej.Jeśli zestaw na OFF wirtualny plik dziennika przeznaczony jest do wywoływana tylko przez innych zestawów.Jeśli istnieją już utworzone przed wirtualny plik dziennikaobiektów bazy danych CLR, nie można zmienić widoczność wirtualny plik dziennika .Wszystkie zestawy odwołuje się assembly_name są przekazywane jako domyślnie nie są widoczne

  • JEJ ŹRÓDŁEM JEST NIESPRAWDZONY DANYCH
    Domyślnie zmiany zestawu nie działa, jeśli należy sprawdzić spójności rzędów tabela .Ta opcja umożliwia odkładanie kontrole na późniejszy czas przy użyciu DBCC CHECKTABLE.Jeśli określony, SQL Server wykonuje zmianę zestawu instrukcja , nawet w przypadku tabel w bazie danych, które zawierają następujące:

    • Utrwalone kolumny obliczane, które bezpośrednio lub pośrednio odwołują się metody w wirtualny plik dziennikapoprzez Transact-SQL funkcji lub metody.

    • Sprawdź ograniczenia, które bezpośrednio lub pośrednio odwołują się do metod opisanych w wirtualny plik dziennika.

    • Kolumny zdefiniowany przez użytkownika typ CLR , które są zależne od wirtualny plik dziennikai implementuje typ UserDefined (nie-macierzystego) format serializacji.

    • Kolumny zdefiniowany przez użytkownika typ CLR odwołujące się do widoków utworzone za pomocą Z SCHEMABINDING.

    Jeśli istnieją ograniczenia wyboru są wyłączone i oznaczone jako niezaufane.Wszystkie tabele zawierające kolumny, w zależności od wirtualny plik dziennika są oznaczone jako zawierające dane niezaznaczone, dopóki te tabele są wyraźnie zaznaczone.

    Tylko członkowie db_owner i db_ddlowner ról stałej bazy danych można określić tę opcję.

    Aby uzyskać więcej informacji, zobacz Implementowanie zespoły.

  • [ DROP FILE { file_name**,**...n | ALL}]
    Usuwa nazwy pliku skojarzonego z wirtualny plik dziennikalub wszystkie pliki skojarzone z wirtualny plik dziennika, z bazy danych.Jeśli używana w Dodaj plik, który następuje, UPUŚĆ plik wykonuje pierwszy.Pozwala zastąpić plik o tej samej nazwie pliku.

  • [ Dodaj z pliku { client_file_specifierjakofile_name] | file_bitsAS file_name}
    Przekazywania pliku ma być skojarzony z wirtualny plik dziennika, takie jak kod źródło , program Debug: polecenie pliki lub inne pokrewne informacje do serwera i widoczny w sys.assembly_files katalogu widoku.client_file_specifierOkreśla lokalizację, z której należy przekazać plik.file_bitsmożna w zamian użyć do określenia listy wartości binarnych, które tworzą plik.file_nameOkreśla nazwę, pod którą plik przechowywany w wystąpienie SQL Server.file_namemusi być określony, jeśli file_bits jest określona, a jest fakultatywne jeśli client_file_specifier określono.Jeśli file_name nie jest określony, część nazwa_pliku client_file_specifier jest używana jako file_name.

Uwagi

Zmiana zestawu nie mogą zakłócać aktualnie uruchomionych sesji, które są uruchamianie kodu w wirtualny plik dziennika modyfikowany.Bieżące sesje całkowitego wykonania za pomocą niezmienionym bitów wirtualny plik dziennika.

klauzula FROM jest określona, ZMIENIA zestawu aktualizuje wirtualny plik dziennika w odniesieniu do najnowszej kopii modułów, pod warunkiem.Ponieważ może być funkcji, procedur przechowywanych, wyzwalaczy, typów danych i zdefiniowane przez użytkownika wartość zagregowana w funkcji wystąpienie CLR SQL Server zdefiniowano już przeciwko wirtualny plik dziennika, zmienić zestaw instrukcja rebinds je do realizacji najnowszego wirtualny plik dziennika.Do wykonania tego ponownego wiązania, metody, które mapują CLR funkcji, procedur przechowywanych i wyzwalaczy nadal musi istnieć w zmodyfikowanej wirtualny plik dziennika z tym samym podpisów.Klasy, które implementują CLR typy zdefiniowane przez użytkownika i zdefiniowane przez użytkownika wartość zagregowana funkcje nadal muszą spełniać wymagania dla typ zdefiniowany przez użytkownika lub wartość zagregowana.

PrzestrogaPrzestroga

Jeżeli nie określono Z NIEZAZNACZONE danych, SQL Server próbuje uniemożliwić zmianę zestawu wykonywanie Jeśli nowego wirtualny plik dziennika wersja wpływa na istniejące dane w tabelach, indeksy lub innych witryn trwałe.Jednakże SQL Server nie gwarantuje, że kolumny obliczane indeksy, widoków indeksów lub wyrażeń są zgodne z podstawowych procedur i typów aktualizacji wirtualny plik dziennika CLR.Należy używać ostrożnie wykonać zmiany zestawu i upewnij się, że nie ma nie jest niezgodność między wynik wyrażenie , a wartość oparte na właśnie wyrażenie przechowywane w wirtualny plik dziennika.

Zmiana zestawu zmieniawersja wirtualny plik dziennika. Kultura i token klucz publicznego wirtualny plik dziennika pozostają takie same.

Zmiana zestawu instrukcja nie można wprowadzić następujące zmiany:

  • Podpisy CLR funkcje, funkcje wartość zagregowana , procedur przechowywanych i wyzwalaczy w wystąpienie SQL Server , odwołanie wirtualny plik dziennika.Zmiana zestawu nie powiedzie się podczas SQL Server nie może ponownie powiązać .NET Framework obiektów bazy danych w SQL Server z nowej wersja wirtualny plik dziennika.

  • Podpisy metod wirtualny plik dziennika , które są wywoływane z innych zestawów.

  • Lista zestawy, które są zależne od wirtualny plik dziennika, wskazaną w DependentList właściwość wirtualny plik dziennika.

  • Indexability metoda, o ile nie ma żadnych indeksów lub trwałe kolumny obliczane w zależności od tej metoda, bezpośrednio lub pośrednio.

  • FillRowmetoda nazwy atrybut dla środowiska CLR tabela-wycenione funkcji.

  • Accumulate i Terminatepodpismetoda dla zagregowanych danych zdefiniowane przez użytkownika.

  • Zestawów systemowych.

  • Własność zestawu.Użycie ALTER autoryzacji (Transact-SQL) zamiast.

Ponadto dla zespołów, które implementują typy zdefiniowane przez użytkownika zmiany zestawu może służyć do dokonania następujących zmian:

  • Modyfikowanie metody publiczne klasy typ zdefiniowany przez użytkownika , jak podpisy lub atrybuty nie są zmieniane.

  • Dodawanie nowej metody publiczne.

  • Zmodyfikowanie metod prywatnych w jakikolwiek sposób.

Nie można zmienić pola zawarte w szeregowane macierzystego typ zdefiniowany przez użytkownika, tym danych członków lub klas podstawowych za pomocą zestawu ALTER.Inne zmiany nie są obsługiwane.

DODAĆ od nie jest określona, ZMIENIA zestawu obniży się wszystkie pliki skojarzone z wirtualny plik dziennika.

Jeśli zmiana zestawu jest wykonywane bez danych NIEZAZNACZONE klauzula, są sprawdzane zweryfikować nowego wirtualny plik dziennika wersja nie narusza istniejących danych w tabelach.W zależności od ilości danych, który musi być sprawdzona może to wpłynąć na wydajność.

Uprawnienia

Wymaga ZMIEŃ uprawnienie dla wirtualny plik dziennika.Dodatkowe wymagania są następujące:

  • Zmiana wirtualny plik dziennika , którego istniejące uprawnienia zestaw jest EXTERNAL_ACCESS, SQL Server logowania musi mieć uprawnienie dostępu zewnętrznego na serwerze.

  • Zmiana wirtualny plik dziennika których istniejące uprawnienia zestaw jest NIEBEZPIECZNY wymaga członkostwa w sysadmin stała rola serwera.

  • Aby zmienić uprawnienia zestaw wirtualny plik dziennika EXTERNAL_ACCESS, SQL Server logowania musi mieć uprawnienie zewnętrznego zestawu dostępu na serwerze.

  • Aby zmienić uprawnienie zestaw wirtualny plik dziennika na NIEBEZPIECZNY wymaga członkostwa w sysadmin stała rola serwera.

  • Określanie Z NIEZAZNACZONE danych wymaga członkostwa w sysadmin stała rola serwera.

Aby uzyskać więcej informacji na temat wirtualny plik dziennika zestawy uprawnień zobacz Zespoły projektowanie.

Przykłady

A.Odświeżanie wirtualny plik dziennika

Poniższy przykład aktualizuje wirtualny plik dziennika ComplexNumber do najnowszej kopii .NET Framework moduły, które przytrzymaj jego wykonania.

Ostrzeżenie

Zespół ComplexNumber mogą być tworzone przez uruchomienie skryptów przykładowych UserDefinedDataType.Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące instalowania przykładów i przykładowych baz danych programu SQL Server.

ALTER ASSEMBLY ComplexNumber

FROM 'C:\Program Files\Microsoft SQL Server\90\Tools\Samples\1033\Engine\Programmability\CLR\UserDefinedDataType\CS\ComplexNumber\obj\Debug\ComplexNumber.dll'

B.Dodawanie pliku do skojarzenia z wirtualny plik dziennika

Poniższy przykład wysyła plik kodu źródło Class1.cs ma być skojarzony z wirtualny plik dziennika MyClass.W tym przykładzie założono wirtualny plik dziennika MyClass jest już utworzony w bazie danych.

ALTER ASSEMBLY MyClass 
ADD FILE FROM 'C:\MyClassProject\Class1.cs';

C.Zmiana uprawnień wirtualny plik dziennika

Poniższy przykład przedstawia zmianę uprawnień zestaw wirtualny plik dziennika ComplexNumber z bezpiecznego EXTERNAL ACCESS.

ALTER ASSEMBLY ComplexNumber WITH PERMISSION_SET = EXTERNAL_ACCESS