Share via


Modifica di un assembly

Si applica a:SQL Server

Gli assembly registrati in SQL Server possono essere aggiornati da una versione più recente usando l'istruzione ALTER ASSEMBLY. Per aggiornare un assembly, utilizzare l'istruzione ALTER ASSEMBLY con la sintassi seguente:

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

ALTER ASSEMBLY non interrompe i processi in esecuzione che utilizzano l'assembly. L'esecuzione di tali processi continua con l'assembly non modificato. Non è possibile utilizzare ALTER ASSEMBLY per modificare le firme di funzioni, funzioni di aggregazione, stored procedure e trigger di CLR (Common Language Runtime). Nuovi metodi pubblici possono essere aggiunti all'assembly, i metodi privati possono essere modificati nel modo desiderato e i metodi pubblici possono essere modificati a condizione di non modificare le firme o gli attributi. Non è possibile modificare tramite ALTER ASSEMBLY i campi contenuti in un tipo definito dall'utente con serializzazione nativa, inclusi i membri dei dati o le classi base. Tutte le altre modifiche non sono supportate. Per altre informazioni, vedere ALTER ASSEMBLY (Transact-SQL).

Modifica del set di autorizzazioni di un assembly

Il set di autorizzazioni di un assembly può essere anch'esso modificato utilizzando l'istruzione ALTER ASSEMBLY. L'istruzione seguente modifica il set di autorizzazioni dell'assembly SQLCLRTest in EXTERNAL_ACCESS.

ALTER ASSEMBLY SQLCLRTest  
WITH PERMISSION_SET = EXTERNAL_ACCESS   

Se il set di autorizzazioni di un assembly viene modificato da SAFE a EXTERNAL_ACCESS o UNSAFE, è necessario creare prima una chiave asimmetrica e un account di accesso corrispondente con l'autorizzazione EXTERNAL ACCESS ASSEMBLY o l'autorizzazione UNSAFE ASSEMBLY per l'assembly. Per altre informazioni, vedere Creating an Assembly.

Aggiunta del codice sorgente di un assembly.

La clausola ADD FILE nella sintassi ALTER ASSEMBLY non è presente in CREATE ASSEMBLY. È possibile utilizzarla per aggiungere codice sorgente o altri file associati a un assembly. I file vengono copiati dai percorsi originali e vengono archiviati nelle tabelle di sistema del database. In questo modo il codice sorgente o gli altri file saranno sempre disponibili nel caso in cui sia necessario ricreare o documentare la versione corrente del tipo definito dall'utente (UDT).

L'istruzione seguente aggiunge il codice sorgente della classe Point.cs per il tipo definito dall'utente Point. Il testo contenuto nel file Point.cs viene copiato e archiviato nel database con il nome "PointSource".

ALTER ASSEMBLY Point

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

Vedere anche

Gestione degli assembly dell'integrazione con CLR
Creazione di un assembly
Eliminazione di un assembly
ALTER ASSEMBLY (Transact-SQL)