Dela via


Ändra en sammansättning

gäller för:SQL Server

Sammansättningar som är registrerade i SQL Server kan uppdateras från en nyare version med hjälp av ALTER ASSEMBLY-instruktionen. Om du vill uppdatera en sammansättning använder du instruktionen ALTER ASSEMBLY med följande syntax:

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

ALTER ASSEMBLY stör inte pågående processer som använder sammansättningen. processerna fortsätter att köras med den oförändrade sammansättningen. ALTER ASSEMBLY kan inte användas för att ändra signaturer för CLR-funktioner (Common Language Runtime), aggregerade funktioner, lagrade procedurer och utlösare. Du kan lägga till nya offentliga metoder i sammansättningen, privata metoder kan ändras på alla sätt och offentliga metoder kan ändras så länge signaturer eller attribut inte ändras. Fält som finns i en inbyggt serialiserad användardefinierad typ, inklusive datamedlemmar eller basklasser, kan inte ändras med hjälp av ALTER ASSEMBLY. Alla andra ändringar stöds inte. Mer information finns i ALTER ASSEMBLY.

Ändra behörighetsuppsättningen för en sammansättning

Behörighetsuppsättningen för en sammansättning kan också ändras med hjälp av instruktionen ALTER ASSEMBLY. Följande instruktion ändrar behörighetsuppsättningen för SQLCLRTest-sammansättningen till EXTERNAL_ACCESS.

ALTER ASSEMBLY SQLCLRTest
    WITH PERMISSION_SET = EXTERNAL_ACCESS;

Om behörighetsuppsättningen för en sammansättning ändras från SAFE till EXTERNAL_ACCESS eller UNSAFEmåste en asymmetrisk nyckel och motsvarande inloggning med EXTERNAL ACCESS ASSEMBLY behörighet eller UNSAFE ASSEMBLY behörighet för sammansättningen först skapas. Mer information finns i Skapa en sammansättning.

Lägg till källkoden för en sammansättning

Satsen ADD FILE i ALTER ASSEMBLY-syntaxen finns inte i CREATE ASSEMBLY. Du kan använda den för att lägga till källkod eller andra filer som är associerade med en sammansättning. Filerna kopieras från sina ursprungliga platser och lagras i systemtabeller i databasen. På så sätt har du alltid källkod eller andra filer till hands om du behöver återskapa eller dokumentera den aktuella versionen av den användardefinierade typen (UDT).

Följande instruktion lägger till Point.cs-klassens källkod för Point UDT. Den kopierar texten i filen Point.cs och lagrar den i databasen under namnet PointSource.

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