Aracılığıyla paylaş


Derlemeyi değiştirme

Şunlar için geçerlidir: SQL Server

SQL Server'da kayıtlı derlemeler, ALTER ASSEMBLY deyimi kullanılarak daha yeni bir sürümden güncelleştirilebilir. Bir derlemeyi güncelleştirmek için aşağıdaki söz dizimiyle ALTER ASSEMBLY deyimini kullanın:

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

ALTER ASSEMBLY, derlemeyi kullanan şu anda çalışan işlemleri kesintiye uğratmaz; işlemler, değiştirilmemiş derlemeyle yürütülmeye devam eder. ALTER ASSEMBLY ortak dil çalışma zamanı (CLR) işlevlerinin, toplama işlevlerinin, saklı yordamların ve tetikleyicilerin imzalarını değiştirmek için kullanılamaz. Derlemeye yeni genel yöntemler ekleyebilirsiniz, özel yöntemler herhangi bir şekilde değiştirilebilir ve imzalar veya öznitelikler değiştirilmediği sürece ortak yöntemler değiştirilebilir. Veri üyeleri veya temel sınıflar dahil olmak üzere yerel serileştirilmiş kullanıcı tanımlı bir tür içinde yer alan alanlar ALTER ASSEMBLYkullanılarak değiştirilemez. Diğer tüm değişiklikler desteklenmiyor. Daha fazla bilgi için bkz. ALTER ASSEMBLY.

Derlemenin izin kümesini değiştirme

Bir derlemenin izin kümesi ALTER ASSEMBLY deyimi kullanılarak da değiştirilebilir. Aşağıdaki deyim, SQLCLRTest derlemesinin izin kümesini EXTERNAL_ACCESSolarak değiştirir.

ALTER ASSEMBLY SQLCLRTest
    WITH PERMISSION_SET = EXTERNAL_ACCESS;

Bir derlemenin izin kümesi SAFE'den EXTERNAL_ACCESS veya UNSAFEolarak değiştiriliyorsa, önce bir asimetrik anahtar ve derleme için EXTERNAL ACCESS ASSEMBLY iznine veya UNSAFE ASSEMBLY iznine sahip ilgili oturum açma bilgileri oluşturulmalıdır. Daha fazla bilgi için bkz. derlemeoluşturma .

Derlemenin kaynak kodunu ekleme

ALTER ASSEMBLY söz dizimindeki ADD FILE yan tümcesi CREATE ASSEMBLYiçinde yoktur. Kaynak kodu veya bir derlemeyle ilişkili diğer dosyaları eklemek için bunu kullanabilirsiniz. Dosyalar özgün konumlarından kopyalanır ve veritabanındaki sistem tablolarında depolanır. Bu şekilde, kullanıcı tanımlı türün (UDT) geçerli sürümünü yeniden oluşturmanız veya belgelediğiniz zaman her zaman kaynak kodunuz veya diğer dosyalarınız olur.

Aşağıdaki deyim, Point UDT için Point.cs sınıf kaynak kodunu ekler. Point.cs dosyasında bulunan metni kopyalar ve PointSourceadı altında veritabanında depolar.

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