alter assembly (Transact-SQL)

derleme değiştirerek değiştirir SQL Server Katalog derlemeözellikleri.alter assembly yeniler, en son kopyasını Microsoft .NET Framework Modüller, bunun uygulanmasının tutun ve ekler veya kaldırır it. ile ilişkili dosyalarıDerlemeler kullanarak oluşturulur DERLEMESİ oluşturmak.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

ALTER ASSEMBLY assembly_name
    [ FROM <client_assembly_specifier> | <assembly_bits> ]
    [ WITH <assembly_option> [ ,...n ] ]
    [ DROP FILE { file_name [ ,...n ] | ALL } ]
    [ ADD FILE FROM 
    { 
                client_file_specifier [ AS file_name ] 
      | file_bits AS file_name 
    } [,...n ] 
    ] [ ; ]
<client_assembly_specifier> :: =
        '\\computer_name\share-name\[path\]manifest_file_name'
  | '[local_path\]manifest_file_name'

<assembly_bits> :: =
    { varbinary_literal | varbinary_expression }

<assembly_option> :: =
    PERMISSION_SET = { SAFE | EXTERNAL_ACCESS | UNSAFE } 
  | VISIBILITY = { ON | OFF }
  | UNCHECKED DATA

Bağımsız değişkenler

  • assembly_name
    Değiştirmek istediğiniz derleme adıdır.assembly_nameveritabanında bulunması gerekir.

  • DAN <client_assembly_specifier> | <assembly_bits>
    En son kopyasını bir derleme güncelleştirmeleri .NET Framework Modüller, tutun, uygulama.Bu seçenek, yalnızca belirtilen derlemeile ilişkili dosya varsa kullanılabilir.

    <client_assembly_specifier> ağ ya da yenilenen derleme bulunduğu yerel bir konum belirtir.Bilgisayar adı, paylaşım adı ve yol bu paylaşım içinde ağ konumunu içerir.manifest_file_name derlemebildirimi içeren dosyanın adını belirtir.

    <assembly_bits> derlemeikili değerdir.

    Ayrı alter assembly deyimleri de güncelleştirme gerektiren bağımlı derlemelerin için verilmiş olması gerekir.

  • NOT = {GÜVENLİ | PERMİSSİON_SET | GÜVENSİZ}
    Belirtir .NET Framework kod erişim küme. Bu özellikhakkında daha fazla bilgi için bkz: DERLEME (Transact-SQL) oluştur.

  • GÖRÜNÜRLÜK = {ON | OFF}
    derleme ortak dil çalışma zamanı (clr) işlevleri, saklı yordamlar, tetikleyiciler, kullanıcı tanımlı türleri ve kullanıcı tanımlı toplu işlevleri karşısında oluşturmak için görünür olup olmadığını gösterir.küme off, derleme için yalnızca diğer derlemeler tarafından çağrılacak isteniyorsa.Varsa zaten ' % s'derleme derlemekarşı oluşturulan clr veritabanı nesnelerini, derleme görünürlüğü değiştirilemez.Tarafından başvurulan derlemeleri assembly_name Varsayılan olarak görünür olarak karşıya

  • DENETLENMEYEN VERİ
    Tek tek tablo satırları tutarlılığını doğrulamak gerekir, varsayılan olarak, alter assembly başarısız olur.Bu seçenek, dbcc checktable kullanarak daha saat Çekler erteleme sağlar.Belirtilmişse, SQL Server olsa dahi, aşağıdakileri içeren veritabanındaki tabloların alter assembly deyim yürütür:

    • Doğrudan veya dolaylı olarak derlemeyöntemleri aracılığıyla başvuran hesaplanmış sütunlar kalıcı Transact-SQL İşlevler veya yöntemler.

    • derlemeyöntemleri doğrudan veya dolaylı olarak başvuran kısıtlamaları DENETLEYİN.

    • derlemeve tür Implements bağlı sütunlar CLR kullanıcı tanımlı türü bir kullanıcı tanımlı (olmayan-yerel) seri hale getirme biçimi.

    • Ema BALAMA ile kullanılarak oluşturulmuş görünümler başvuru sütunları CLR kullanıcı tanımlı türü .

    ONAY kısıtlamalar varsa, bunlar devre dışı ve güvenilmeyen olarak işaretlenmiş.derleme bağlı sütunlar içeren herhangi bir tablo, bu tabloları açıkça teslim kadar denetlenmeyen veri içeren olarak işaretlenir.

    Yalnızca üyeleri db_owner ve db_ddlowner sabit veritabanı rolleri, bu seçenek belirtebilirsiniz.

    Daha fazla bilgi için, bkz. Assemblies uygulama.

  • [ DROP FILE { file_name**,**...n | {ALL}]
    ' % S'derleme derlemeile ilişkili dosya adı veya derleme, veritabanı ile ilişkili tüm dosyaları kaldırır.Aşağıdaki dosya Ekle kullanıldığında, drop dosya ilk yürütür.Bu, bir dosya ile aynı dosya adını değiştirmek için olanak sağlar.

  • [ Ekle dosya from { client_file_specifierasfile_name] | file_bitsAS file_name}
    derleme, kaynak kodu gibi ilişkilendirilmiş olması için dosyayı karşıya yüklemeyi hata ayıklama dosyaları veya diğer ilgili bilgileri, sunucu ve görünür hale sys.assembly_files Katalog görünümü.client_file_specifierdosya karşıya yükleme konum belirtir.file_bitsBunun yerine dosyasını oluşturan ikili değerler listesi belirtmek için kullanılır.file_namealtında dosya depolanmış örnek adını belirtir SQL Server.file_namebelirtilmelidir file_bits belirtilen ve isteğe bağlıdır, client_file_specifier belirtilir.file_name Belirtilmezse, dosya_adı parçası client_file_specifier olarak kullanılan file_name.

Açıklamalar

alter assembly değiştirilmesini derleme içinde çalışan kod şu anda çalışan oturumları kesebilir değil.Geçerli Oturumlar yürütme derlemedeğiştirilmemiş bitleri kullanarak tamamlayın.

from yan tümce belirtilirse, alter assembly derleme açısından sağlanan modülleri son kopyalarını güncelleştirir.clr İşlevler, saklı yordamlar, tetikleyiciler, veri türleri ve kullanıcı tanımlı toplu işlevlerinde örnek olabilir çünkü SQL Server önceden tanımlanan karşı derleme, bunları alter assembly deyim derlemeson uygulamasına rebinds.Bu yeniden birleştirme gerçekleştirmek için clr İşlevler, saklı yordamları ve Tetikleyicileri eşleme yöntemleri hala aynı imzaları ile derleme değiştirilmiş bulunması gerekir.clr kullanıcı tanımlı türleri ve kullanıcı tanımlı toplu işlevleri uygulamak sınıfları hala bir kullanıcı tanımlı tür veya toplugereksinimleri karşılamak gerekir.

Dikkat notuDikkat

İLE DENETLENMEYEN veri belirtilmezse, SQL Server çalışır önleme alter assembly yürütülmesini, yeni derleme sürüm etkiler varolan veri tabloları, dizinler, veya kalıcı diğer siteler.Ancak, SQL Server hesaplanmış sütunları, dizinleri, dizin oluşturulmuş görünümler veya ifadeler olacaktır temel yordam ve türleri ile tutarlı clr derleme güncelleştirildiğinde garantilemez.alter, orada emin olmak için DERLEME yürütmek bir ifade sonucunu ve değeri arasında bir uyumsuzluk değil dikkatli kullanın derlemedepolanan ifade göre.

alter assembly derleme sürümdeğiştirir.Kültür ve ortak anahtar belirteci derleme aynı kalır.

Aşağıdakileri değiştirmek için alter assembly deyim kullanılamaz:

  • clr İşlevler, toplu işlevleri, saklı yordamları ve Tetikleyicileri bir örnek yer alan imzalarını SQL Server derlemebaşvurusu.alter assembly başarısız SQL Server yapamazsınız yeniden bağlamanız .NET Framework veritabanı nesnelerinin SQL Server derleme sürüm yeni.

  • Diğer derlemeler adlı derleme yöntemleri imzalar.

  • derleme, içinde bulunulan bağımlı derlemelerin listesi DependentList derlemeözellik .

  • İndexability bir yöntemolmadığı sürece hiçbir dizinler veya kalıcı hesaplanmış sütunları olan bu yöntem, doğrudan veya dolaylı olarak.

  • FillRowyöntem adı öznitelik için clr tablo-değerli fonksiyonlar.

  • Accumulate Ve Terminateyöntem imzası için kullanıcı tanımlı aggregates.

  • Sistem montajları.

  • Derleme olma.Use alter YETKİLENDİRME (Transact-SQL) bunun yerine.

Ayrıca, kullanıcı tanımlı türler uygulamak derlemeler için alter assembly yalnızca aşağıdaki değişiklikleri yapmak için kullanılabilir:

  • İmzalar ya da öznitelikleri değişmez sürece kullanıcı tanımlı tür sınıfın public yöntemler değiştirme.

  • Yeni ortak yöntemleri ekleme.

  • Özel yöntemler herhangi bir şekilde değiştirme.

alter assembly kullanarak veri üyeleri veya temel sınıflar da dahil olmak üzere bir yerel seri hale getirilmiş kullanıcı tanımlı türiçinde yer alan alanları değiştirilemez.Tüm diğer değişiklikleri desteklenmez.

DOSYA dan eklemek belirtilmezse, alter assembly derlemeile ilişkili tüm dosyaları bırakır.

alter assembly DENETLENMEYEN veri yan tümceyürütülürse, tablodaki varolan verilerin yeni derleme sürüm etkilemez doğrulamak için denetimleri gerçekleştirilmez.Denetlenmesi gereken veri miktarına bağlı olarak, bu performansı etkileyebilir.

İzinler

derlemeüzerinde alter izni gerektirir.Ek gereksinimleri aşağıdaki gibidir:

  • Varolan iznini küme permission_set, bir derleme değiştirmek için SQL Server oturum açma dış erişim izni olması gerekirsunucusu.

  • Bir derleme değiştirme üyelik gerektirir, varolan iznini küme için güvenli olmayan olduğu sysadmin sabit sunucu rolü.

  • Permission_set için izin küme derleme değiştirmek için SQL Server oturum açma sunucusu dış erişim DERLEME izni olması gerekir

  • Değiştirme izni için üyelik gerektiren güvenli olmayan derleme , küme sysadminsabit sunucu rolü.

  • Belirtme ile DENETLENMEYEN veri üyelik gerektirir sysadmin sabit sunucu rolü.

derleme izin kümeleri hakkında daha fazla bilgi için bkz: Assemblies tasarlama.

Örnekler

A.derlemeyenileme

Aşağıdaki örnek derlemegüncelleştirmeleriComplexNumber en son kopyasını .NET Framework Modüller, tutun, uygulama.

Not

Derleme ComplexNumber can be created çalıştırarak UserDefinedDataType örnek komut dosyaları.Daha fazla bilgi için, bkz. SQL Server Örnekleri ve Örnek Veritabanlarının Yüklenmesiyle İlgili Önemli Noktalar.

ALTER ASSEMBLY ComplexNumber

FROM 'C:\Program Files\Microsoft SQL Server\90\Tools\Samples\1033\Engine\Programmability\CLR\UserDefinedDataType\CS\ComplexNumber\obj\Debug\ComplexNumber.dll'

B.Bir derlemeile ilişkilendirmek için bir dosya ekleme

Aşağıdaki örnek, kaynak kodu dosyası yükler Class1.cs ilişkilendirilmesi derlemeiçin MyClass.Bu örnek derlemevarsayarMyClass önceden oluşturulmuş veritabanı.

ALTER ASSEMBLY MyClass 
ADD FILE FROM 'C:\MyClassProject\Class1.cs';

C.derlemeizinlerini değiştirme

Aşağıdaki örnek izni küme , derlemedeğiştirirComplexNumber için güvenli dan EXTERNAL ACCESS.

ALTER ASSEMBLY ComplexNumber WITH PERMISSION_SET = EXTERNAL_ACCESS