Modifica di un assembly

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

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

ALTER ASSEMBLY non interrompe i processi attualmente in esecuzione che usano l'assembly; i processi continuano a essere eseguiti con l'assembly non modificato. ALTER ASSEMBLY non può essere usato per modificare le firme di funzioni CLR (Common Language Runtime), funzioni di aggregazione, stored procedure e trigger. È possibile aggiungere nuovi metodi pubblici all'assembly, i metodi privati possono essere modificati in qualsiasi modo e i metodi pubblici possono essere modificati purché le firme o gli attributi non vengano modificati. I campi contenuti all'interno di un tipo definito dall'utente serializzato nativo, inclusi i membri dati o le classi di base, non possono essere modificati tramite ALTER ASSEMBLY. Tutte le altre modifiche non sono supportate. Per altre informazioni, vedere ALTER ASSEMBLY (Transact-SQL).

Modifica del set di autorizzazioni di un assembly

È anche possibile modificare il set di autorizzazioni di un assembly usando 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 autorizzazione EXTERNAL ACCESS ASSEMBLY o UNSAFE ASSEMBLY per l'assembly. Per altre informazioni, vedere Creating an Assembly.

Aggiunta del codice sorgente di un assembly

La clausola ADD FILE nella ALTER ASSEMBLY sintassi 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 point UDT. 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 di integrazione CLR
Creazione di un assembly
Eliminazione di un assembly
ALTER ASSEMBLY (Transact-SQL)