Ä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 UNSAFE
må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;