alter assembly (Transact-sql)
Derleme değiştirerek değiştirir SQL ServerKatalog özelliklerini bir derleme. alter assembly yeniler bunu en son kopyasını Microsoft .NET Framework, onun uygulanması tutun ve ekler veya kaldırır dosyalarını görüneceği ile ilişkilendirilmiş modüller Derlemeler kullanılarak oluşturulan create assembly.
Transact-SQL Sözdizim 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 addır. assembly_namezaten veritabanında bulunması gerekir.DAN <client_assembly_specifier> | <assembly_bits>
En son kopyasını derleme güncellemeleri .NET Frameworkuygulanması tutun modüller. Bu seçenek, yalnızca belirtilen derleme ile ilişkili dosya yoksa kullanılabilir.<client_assembly_specifier> ağ ya da yenilenmesi derleme yüklü olduğu yerel bir konum belirtir. Ağ konumu, bilgisayar adı, paylaşım adı ve yolu bu paylaşım içinde içerir. manifest_file_name Derleme bildirimi içeren dosyanın adını belirtir.
<assembly_bits> derleme için ikili değerdir.
Ayrı alter assembly deyimleri ayrıca güncelleştirme gerektiren herhangi bir bağımlı derlemelerin için verilmiş olması gerekir.
[!NOT]
Bu seçenek içerilen bir veritabanında kullanılamaz.
PERMISSION_SET = {GÜVENLİ | EXTERNAL_ACCESS | GÜVENSİZ}
Belirtir .NET Frameworkkod erişim izni ayarlama özelliği Meclis. Bu özellik hakkında daha fazla bilgi için bkz: Derleme (Transact-sql) oluştur.[!NOT]
external_access ve unsafe seçenekleri bulunan bir veritabanında kullanılamaz.
GÖRÜNÜRLÜK = {ON | KAPALI}
Derleme ortak dil çalışma zamanı (clr) işlevleri, saklı yordamlar, Tetikleyiciler, kullanıcı tanımlı türleri ve kullanıcı tanımlı toplama işlevleri buna karşı oluşturmak için görünür olup olmadığını gösterir. off için ayarlanmış, derleme yalnızca diğer meclisleri tarafından çağrılacak içindir eğer. Varsa zaten derleme karşı oluşturulan clr veritabanı nesneleri, derleme görünürlüğü değiştirilemez. Tarafından başvurulan tüm derlemeleri assembly_namegörünmez varsayılan olarak yüklenir.DENETLENMEYEN DATA
Tek tek tablo satırları tutarlılığını doğrulamak gerekir varsayılan alter assembly başarısız olur. Bu seçenek, dbcc checktable kullanarak çekleri daha sonraki bir zamana kadar ertelenmesi sağlar. Belirtilmişse, SQL Serveraşağıdakileri içeren tablolar veritabanı bile alter assembly deyimi yürütür:Doğrudan ya da dolaylı olarak derleme, yöntemleri aracılığıyla başvuran hesaplanmış sütunlar kalıcı Transact-SQLişlevleri veya yöntemleri.
Derleme yöntemleri doğrudan veya dolaylı olarak başvuran check kısıtlamaları.
Derleme ve türünü uygular bağlı kullanıcı tanımlı bir clr türü sütunları bir UserDefined (non-Yerel) seri hale getirme biçimi.
WITH SCHEMABINDING kullanılarak oluşturulan görünümleri başvuru bir clr türü kullanıcı tanımlı sütunlar.
Herhangi bir denetim kısıtlamalarını varsa, bunlar devre dışı ve güvenilmeyen olarak işaretlenmiş. Derleme bağlı sütun içeren bir tablo, tablolar açıkça denetlenir 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.
FROM DISK = file_name { ''
Derleme ile ilişkilendirilmiş dosya adı veya derleme, veritabanından gelen ilişkili tüm dosyaları kaldırır. Aşağıdaki dosya Ekle ile kullanılırsa, ilk açılan dosyayı yürütür. Bu, bir dosya ile aynı dosya adını değiştirmek için olanak sağlar.[!NOT]
Bu seçenek içerilen bir veritabanında kullanılamaz.
add DOSYASINDAN { client_file_specifieras file_name] |file_bitsAS file_name}
Bir derleme, kaynak kodu gibi ilişkilendirilecek dosya yüklenenler hata ayıklama dosyaları veya diğer ilgili bilgileri, sunucu ve görünür yapılan sys.assembly_files Katalog görünümü. client_file_specifierDosya yükleme konumu belirtir. file_bitsBunun yerine dosyasını oluşturan ikili değerler listesi belirtmek için kullanılabilir. file_namealtında dosyasının kopyasında belirtir SQL Server. file_namebelirtilmelidir file_bitsbelirtilen ve isteğe bağlı ise, client_file_specifierbelirtilen. Eğer file_namebelirtilmemiş, dosya_adı bölümü client_file_specifierolarak kullanılan file_name.[!NOT]
Bu seçenek içerilen bir veritabanında kullanılamaz.
Açıklamalar
alter assembly kodu derleme değiştirilmiş çalıştıran çalışan oturumları bozabilir değil. Geçerli Oturumlar yürütme Kurul değiştirilmemiş bitleri kullanarak tamamlayın.
from yan tümcesi belirtilirse, alter assembly montaja sağlanan modüllerini son kopyalarını güncelleştirir. clr işlevler, saklı yordamlar, Tetikleyiciler, veri türleri ve kullanıcı tanımlı toplama işlevleri örneği olabilir çünkü SQL Serverderleme karşı önceden tanımlanmış, alter assembly deyimi derlemenin son uygulanması için onları rebinds. Bu yeniden birleştirme gerçekleştirmek için clr işlevler, saklı yordamları ve Tetikleyicileri göster yöntemleri hala aynı imzalarla olarak derleme bulunması gerekir. Kullanıcı tanımlı clr türleri ve kullanıcı tanımlı toplama işlevleri uygulamak sınıfları hala bir kullanıcı tanımlı türü ya da toplama gereksinimleri karşılamaları gerekir.
Dikkat |
---|
İLE denetlenmeyen data belirtilmezse, SQL Serveralter assembly yeni derleme sürümü varolan veri tabloları, dizinler veya diğer kalıcı siteleri etkiliyorsa yürütülmesini engellemek çalışıyor. Ancak, SQL Serverhesaplanmış sütunları, dizinleri, dizin oluşturulmuş görünümler veya ifadeleri olacak temel yordamları ve türleri ile tutarlı clr derlemesi güncelleştirildiğinde garantilemez. Bir ifadenin sonucunu arasında bir uyumsuzluk değildir ve ifade derleme depolanan değeri temel emin olmak için alter assembly yürüttüğünüzde dikkatli olun. |
alter assembly derleme sürümünü değiştirir. Kültür ve ortak anahtar belirteci derlemenin aynı kalır.
Aşağıdakileri değiştirmek için alter assembly deyimi kullanılamaz:
clr işlevler, toplama işlevleri, saklı yordamları ve Tetikleyicileri örneği imzalarını SQL Serverderleme başvurusu. alter assembly başarısız ne zaman SQL Serveryeniden bağlamanız olamaz .NET Frameworkveritabanı nesnelerinin SQL Serverderleme yeni versiyonu ile.
Diğer derlemeler adlı derleme yöntemleri imzalar.
Derleme, başvurulan olarak bağımlı derlemelerin listesi DependentList derleme özelliği.
İndexability bir yöntem olmadığı sürece hiçbir dizinler veya bu yönteme kalıcı hesaplanmış sütunları doğrudan ya da dolaylı olarak.
FillRowYöntemi adı özniteliği clr tablo değerli işlevler için.
AccumulateVe Terminateiçin kullanıcı tanımlı toplamları yöntemi imzası.
Sistem montajları.
Derleme sahipliğini. Kullanım YETKILENDIRME (Transact-sql)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öntemlerden herhangi bir şekilde değiştirme.
Veri üyeleri ya da temel sınıflar da dahil olmak üzere bir yerel seri hale kullanıcı tanımlı türü içinde yer alan alter assembly kullanılarak değiştirilemez. Tüm diğer değişiklikleri desteklenmez.
Dosya from add belirtilmezse, alter assembly derleme ile ilişkili dosyaları bırakır.
alter assembly denetlenmeyen data yan tümcesi yürütülen yeni derleme sürümü varolan tablolardaki verileri etkilemez doğrulamak için denetimleri gerçekleştirilmez. Denetlenmesi gereken veri miktarına bağlı olarak, bu performansı etkileyebilir.
İzinler
Derleme alter izni gerektirir. Ek gereksinimleri aşağıdaki gibidir:
Derleme varolan iznini değiştirmek için external_access, ayarlanır SQL Serveroturum açma sunucu üzerindeki dış erişim izni olması gerekir.
Derleme varolan iznini değiştirmek için unsafe kümesidir üyelik sysadmin sunucu rolü.
external_access için derleme izin kümesi değiştirmek için SQL Serveroturum açma sunucu üzerindeki dış erişim derleme izni olması gerekir.
İznini değiştirmek için unsafe derleme kümesi üyeliği gerektirir sysadmin sunucu rolü.
Belirtme ile denetlenmeyen data üyelik gerektirir sysadmin sunucu rolü.
Derleme izin kümeleri hakkında daha fazla bilgi için bkz: Assemblies tasarlama.
Örnekler
A.Derleme yenilenmesi
Aşağıdaki örnek, derleme güncelleştirir ComplexNumberen son kopyasını .NET Frameworkuygulanması tutun modüller.
[!NOT]
Derleme ComplexNumberUserDefinedDataType örnek komut dosyaları çalıştırarak oluşturulabilir. Daha fazla bilgi için, bkz. Kullanıcı tanımlı türü.
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 derleme ile ilişkilendirmek için bir dosya ekleme
Aşağıdaki örnek kaynak kodu dosyası yükler Class1.csderlemesi ile ilişkili olduğu MyClass. Bu örnek derleme varsayar MyClasszaten veritabanında oluşturulur.
ALTER ASSEMBLY MyClass
ADD FILE FROM 'C:\MyClassProject\Class1.cs';
ALTER ASSEMBLY MyClass
ADD FILE FROM 'C:\MyClassProject\Class1.cs';
C.Derleme izinlerini değiştirme
Aşağıdaki örnek derleme izin kümesi değiştirir ComplexNumberdan güvenli EXTERNAL ACCESS.
ALTER ASSEMBLY ComplexNumber WITH PERMISSION_SET = EXTERNAL_ACCESS
ALTER ASSEMBLY ComplexNumber WITH PERMISSION_SET = EXTERNAL_ACCESS