Iş mantığı ekleme
XML verilerini çeşitli şekillerde, iş mantığı eklenebilir:
Satır veya sütun ekleme ve XML verilerini değiştirilmesi sırasında bir özel etki alanı kısıtlamalarını zorlamak için kısıtlamaları yazabilirsiniz.
Tetik ateşlendiğinde XML sütun eklediğinizde veya sütundaki değerlerin güncelleştirme yazabilirsiniz.Tetikleyici etki alanına özgü doğrulama kuralları içeren veya özellik tabloları doldurun.
Içinde başlangıç SQL Server 2005, veritabanı altyapısı becerisine sahiptir. yönetilen kod yürütebilir. Işlevler, XML değerlerini ve System.XML ad alanı tarafından sağlanan XML işleme özelliklerini kullanmak için yönetilen kod yazma için bu ortak dil çalışma zamanı (CLR) tümleştirme'ni kullanabilirsiniz.Uygulanacak örneğidir XSL dönüştürme XML verileri.Alternatif olarak, bir veya daha çok yönetilen sınıflar XML serisini ve yönetilen kod kullanılarak üzerinde çalışır.
Transact-SQL'DE saklı yordamlar ve işlem iş gereksinimleriniz için XML sütunda başlayan işlevleri yazabilirsiniz.
Örnek: XSL dönüştürme
CLR işlev göz önünde bulundurun. TransformXml() kabul edenxml Veri örnek ve bir dosyada saklanan bir XSL dönüşümünü yazın dönüştürme için XML veri uygular ve sonra da dönüştürülmüş XML sonucu verir. C# dilinde yazılmıştır skeleton bir işlev aşağıdadır:
public static SqlXml TransformXml (SqlXml XmlData, string xslPath) {
// Load XSL transformation
XslCompiledTransform xform = new XslCompiledTransform();
XPathDocument xslDoc = new XPathDocument (xslPath);
xform.Load(xslDoc);
// Load XML data
XPathDocument xDoc = new XPathDocument (XmlData.CreateReader());
// Return the transformed value
MemoryStream xsltResult = new MemoryStream();
xform.Transform(xDoc, null, xsltResult);
SqlXml retSqlXml = new SqlXml(xsltResult);
return (retSqlXml);
}
Sonra bu derlemeye kayıtlı ve kullanıcı tanımlı Transact-SQL işlev oluşturulur SqlXslTransform() için karşılık gelen**TransformXml()**işlevini Transact-SQL aşağıdaki sorguda gösterilen çağrılabilir:
SELECT SqlXslTransform (xCol, 'C:\MyFile\xsltransform.xsl')
FROM T
WHERE xCol.exist('/book/title/text()[contains(.,"custom")]') =1
Sorgu sonucu, dönüştürülmüş çalışma XML'in satır kümesi içerir.
Içine CLR tümleştirme SQL Server XML veri tabloları veya özellik yükseltme decomposing ve System.XML ad boşluğunda yönetilen sınıflar kullanarak XML verilerini sorgulamak için olanaklarını genişletir. Daha fazla bilgi için bkz:Ortak dil çalışma zamanı (CLR) tümleştirme genel bakış.