Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, veritabanındaki derlemeleri uygulamanıza ve bunlarla çalışmanıza yardımcı olmak için aşağıdaki alanlar hakkında bilgi sağlanır:
- Derlemeler oluşturma
- Derlemeleri değiştirme
- Derlemeleri bırakma, devre dışı bırakma ve etkinleştirme
- Derleme sürümlerini yönetme
Derlemeler oluşturma
Derlemeler SQL Server'da Transact-SQL CREATE ASSEMBLY deyimi kullanılarak veya SQL Server Management Studio'da Derleme Yardımlı Düzenleyicisi kullanılarak oluşturulur. Ayrıca, Visual Studio'da bir SQL Server Projesi dağıtmak, proje için belirtilen veritabanına bir derleme kaydeder. Daha fazla bilgi için bkz. CLR veritabanı nesnelerini dağıtma.
- Transact-SQL ile: CREATE ASSEMBLY (Transact-SQL)
- SQL Server Management Studio ile: Derleme özellikleri
Derlemeleri değiştirme
Derlemeler SQL Server'da Transact-SQL ALTER ASSEMBLY deyimi kullanılarak veya SQL Server Management Studio'da Derleme Yardımlı Düzenleyicisi kullanılarak değiştirilir.
- Transact-SQL ile: ALTER ASSEMBLY (Transact-SQL)
- SQL Server Management Studio ile: Derleme özellikleri
Aşağıdaki eylemleri gerçekleştirmek istediğinizde bir derlemeyi değiştirebilirsiniz:
Derlemenin ikili dosyalarının daha yeni bir sürümünü karşıya yükleyerek derlemenin uygulamasını değiştirin. Daha fazla bilgi için bu makalenin devamında derleme sürümlerini yönetme
bakın. Derlemenin izin kümesini değiştirin. Daha fazla bilgi için bkz. Tasarım derlemeleri.
Derlemenin görünürlüğünü değiştirin. GÖRÜNÜR derlemeler SQL Server'da başvuru için kullanılabilir. Veritabanında karşıya yüklenmiş olsalar bile görünür olmayan derlemeler kullanılamaz. Varsayılan olarak, SQL Server örneğine yüklenen derlemeler görünür.
Derlemeyle ilişkili bir hata ayıklama veya kaynak dosyası ekleyin veya bırakın.
Derlemeleri bırakma, devre dışı bırakma ve etkinleştirme
Derlemeler Transact-SQL DROP ASSEMBLY deyimi veya SQL Server Management Studio kullanılarak bırakılır.
- Transact-SQL ile: DROP ASSEMBLY (Transact-SQL)
- SQL Server Management Studio ile: Nesneleri Silme
Varsayılan olarak, SQL Server'da oluşturulan tüm derlemelerin yürütülmesi devre dışı bırakılır. SQL Server'a yüklenen tüm derlemelerin yürütülmesini devre dışı bırakmak veya etkinleştirmek için clr enabled sistem saklı yordamının sp_configure seçeneğini kullanabilirsiniz. Derleme yürütmeyi devre dışı bırakmak, ortak dil çalışma zamanı (CLR) işlevlerinin, saklı yordamların, tetikleyicilerin, toplamaların ve kullanıcı tanımlı türlerin yürütülmesini önler ve şu anda yürütülenleri durdurur. Derleme yürütmeyi devre dışı bırakmak derleme oluşturma, değiştirme veya bırakma özelliğini devre dışı bırakmaz. Daha fazla bilgi için bkz. Sunucu yapılandırması: clr enabled.
Daha fazla bilgi için bkz. sp_configure.
Derleme sürümlerini yönetme
Bir derleme sql server örneğine yüklendiğinde, derleme veritabanı sistem katalogları içinde depolanır ve yönetilir. .NET Framework'teki derlemenin tanımında yapılan tüm değişiklikler, veritabanı kataloğunda depolanan derlemeye yayılmalıdır.
Bir derlemeyi değiştirmeniz gerektiğinde, veritabanındaki derlemeyi güncelleştirmek için bir ALTER ASSEMBLY deyimi vermelisiniz. Bu deyim, derlemeyi uygulamasını tutan .NET Framework modüllerinin en son kopyasına güncelleştirir.
WITH UNCHECKED DATA deyiminin ALTER ASSEMBLY yan tümcesi, SQL Server'a veritabanında kalıcı verilerin bağımlı olduğu derlemeleri bile yenilemesini belirtir. Özellikle, aşağıdakilerden herhangi biri varsa WITH UNCHECKED DATA belirtmeniz gerekir:
Transact-SQL işlevleri veya yöntemleri aracılığıyla doğrudan veya dolaylı olarak derlemedeki yöntemlere başvuran kalıcı hesaplanan sütunlar.
Derlemeye bağlı clr kullanıcı tanımlı türün sütunları ve türü bir
UserDefined(Nativeolmayan) serileştirme biçimi uygular.
Dikkat
WITH UNCHECKED DATA belirtilmezse, yeni derleme sürümü tablolar, dizinler veya diğer kalıcı sitelerdeki mevcut verileri etkiliyorsa SQL Server ALTER ASSEMBLY yürütülmesini engellemeye çalışır. Ancak SQL Server, CLR derlemesi güncelleştirildiğinde hesaplanan sütunların, dizinlerin, dizinli görünümlerin veya ifadelerin temel yordamlarla ve türlerle tutarlı olacağını garanti etmez. bir ifadenin sonucu ile derlemede depolanan ifadeyi temel alan bir değer arasında uyuşmazlık olmadığından emin olmak için ALTER ASSEMBLY yürütürken dikkatli olun.
yan tümcesini kullanarak yalnızca db_owner ve ALTER ASSEMBLY sabit veritabanı rolünün üyeleri çalıştırma WITH UNCHECKED DATA yürütebilir.
SQL Server, Windows Uygulaması olay günlüğüne derlemenin tablolarda işaretlenmemiş verilerle değiştirildiğini belirten bir ileti gönderir. ARDıNDAN SQL Server, derlemeye bağımlı veri içeren tabloları işaretlenmemiş verilere sahip olarak işaretler.
has_unchecked_assembly_data katalog görünümünün sys.tables sütunu, işaretlenmemiş veriler içeren tablolar için değer 1 ve işaretsiz veri içermeyen tablolar için 0 içerir.
İşaretsiz verilerin bütünlüğünü çözmek için, işaretsiz veriler içeren her tabloda DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS çalıştırın.
DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS başarısız olursa, geçerli olmayan tablo satırlarını silmeniz veya sorunları gidermek için derleme kodunu değiştirmeniz ve ardından daha fazla ALTER ASSEMBLY deyimi göndermeniz gerekir.
ALTER ASSEMBLY derleme sürümünü değiştirir. Derlemenin kültürü ve ortak anahtar belirteci aynı kalır. SQL Server aynı ada, kültüre ve ortak anahtara sahip bir derlemenin farklı sürümlerinin kaydedilmesine izin vermez.
Sürüm bağlama için bilgisayar genelinde ilkeyle etkileşimler
SQL Server'da depolanan derlemelere başvurular, yayımcı ilkesi veya bilgisayar genelinde yönetici ilkesi kullanılarak belirli sürümlere yeniden yönlendiriliyorsa, aşağıdaki eylemlerden birini yapmalısınız:
Bu yeniden yönlendirmenin yapıldığı yeni sürümün veritabanında olduğundan emin olun.
Tüm deyimleri, veritabanındaki belirli bir sürüme başvuracaklarından emin olmak için bilgisayar veya yayımcı ilkesinin dış ilke dosyalarında değiştirin.
Aksi takdirde, SQL Server örneğine yeni bir derleme sürümü yükleme girişimi başarısız olur.
Daha fazla bilgi için bkz. ALTER ASSEMBLY