Freigeben über


Ändern einer Assembly

Gilt für:SQL Server

Assemblys, die in SQL Server registriert sind, können mithilfe der ALTER ASSEMBLY-Anweisung von einer neueren Version aktualisiert werden. Verwenden Sie zum Aktualisieren einer Assembly die ALTER ASSEMBLY-Anweisung mit der folgenden Syntax:

ALTER ASSEMBLY SQLCLRTest
    FROM 'C:\MyDBApp\SQLCLRTest.dll';

ALTER ASSEMBLY unterbricht derzeit ausgeführte Prozesse, die die Assembly verwenden, nicht; die Prozesse werden weiterhin mit der unveränderten Assembly ausgeführt. ALTER ASSEMBLY können nicht verwendet werden, um die Signaturen von ClR-Funktionen (Common Language Runtime), Aggregatfunktionen, gespeicherten Prozeduren und Triggern zu ändern. Sie können der Assembly neue öffentliche Methoden hinzufügen, private Methoden können beliebig geändert werden, und öffentliche Methoden können geändert werden, solange Signaturen oder Attribute nicht geändert werden. Felder, die in einem systemeigenen serialisierten benutzerdefinierten Typ enthalten sind, einschließlich Datenmember oder Basisklassen, können nicht mithilfe von ALTER ASSEMBLYgeändert werden. Alle anderen Änderungen werden nicht unterstützt. Weitere Informationen finden Sie unter ALTER ASSEMBLY.

Ändern des Berechtigungssatzes einer Assembly

Der Berechtigungssatz einer Assembly kann auch mithilfe der ALTER ASSEMBLY-Anweisung geändert werden. Die folgende Anweisung ändert den Berechtigungssatz der SQLCLRTest-Assembly in EXTERNAL_ACCESS.

ALTER ASSEMBLY SQLCLRTest
    WITH PERMISSION_SET = EXTERNAL_ACCESS;

Wenn der Berechtigungssatz einer Assembly von SAFE in EXTERNAL_ACCESS oder UNSAFEgeändert wird, muss zunächst ein asymmetrischer Schlüssel und eine entsprechende Anmeldung mit EXTERNAL ACCESS ASSEMBLY Berechtigung oder UNSAFE ASSEMBLY Berechtigung für die Assembly erstellt werden. Weitere Informationen finden Sie unter Erstellen einer Assembly.

Hinzufügen des Quellcodes einer Assembly

Die ADD FILE-Klausel in der ALTER ASSEMBLY-Syntax ist in CREATE ASSEMBLYnicht vorhanden. Sie können sie verwenden, um Quellcode oder beliebige andere Dateien hinzuzufügen, die einer Assembly zugeordnet sind. Die Dateien werden von ihren ursprünglichen Speicherorten kopiert und in Systemtabellen in der Datenbank gespeichert. Auf diese Weise verfügen Sie immer über Quellcode oder andere Dateien, wenn Sie die aktuelle Version des benutzerdefinierten Typs (UDT) neu erstellen oder dokumentieren müssen.

Die folgende Anweisung fügt den Point.cs Klassenquellcode für das Point UDT hinzu. Er kopiert den in der datei Point.cs enthaltenen Text und speichert ihn in der Datenbank unter dem Namen PointSource.

ALTER ASSEMBLY Point
ADD FILE FROM 'C:\Projects\Point\Point.cs' AS PointSource;