Condividi tramite


Modificare 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, 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 usando ALTER ASSEMBLY. Tutte le altre modifiche non sono supportate. Per altre informazioni, vedere ALTER ASSEMBLY.

Modificare il 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 Creare un assembly.

Aggiungere il 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, si ha sempre codice sorgente o altri file a portata di mano, se mai è 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. Copia il testo contenuto nel file Point.cs e lo archivia nel database con il nome PointSource.

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