Dodawanie logika biznesowa
logika biznesowa mogą być dodawane do danych XML na kilka sposobów:
Można napisać ograniczenia wiersza lub kolumna, aby wymusić ograniczenia specyficzne dla domena podczas wstawiania i modyfikowania danych XML.
Można napisać wyzwalacz kolumna XML, która uruchomieniu przy wstawianiu lub aktualizacji wartości kolumna.Wyzwalacz mogą zawierać reguł sprawdzania poprawności specyficzne dla domena lub Wypełnij tabele właściwość.
Począwszy od SQL Server 2005, aparat bazy danych obejmuje możliwość wykonywania kod zarządzany. Integracja ta wspólnego (CLR) w czasie wykonywania języka można użyć do pisania kod zarządzany, do którego użytkownik przekazania wartości XML i możliwości przetwarzania XML oferowane przez obszar nazw System.Xml za pomocą funkcji.Przykładem jest zastosowanie XSL Transformation danych XML.Alternatywnie można deserializacji kodu XML do jednego lub kilku klas zarządzanych i operują na nich przy użyciu kod zarządzany.
Można napisać procedury przechowywanej języka Transact-SQL i funkcji, których uruchomienie przetwarzania kolumna XML do potrzeb biznesowych.
Przykład: Stosowanie XSL Transformation
Należy wziąć pod uwagę funkcja środowiska CLR TransformXml() akceptuje xml danych wpisz wystąpienie i transformacja XSL, przechowywane w pliku, dotyczy transformacja danych XML, a następnie Zwraca przetransformowany XML w wyniku. Funkcja skeleton, napisany w języku C# jest następujący:
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);
}
Po zestawie jest zarejestrowany, a co zdefiniowanej przez użytkownika Transact-SQL funkcja została utworzona, SqlXslTransform() odpowiadająceTransformXml(), funkcja może być wywoływana z języka Transact-SQL, jak pokazano na następującej kwerendy:
SELECT SqlXslTransform (xCol, 'C:\MyFile\xsltransform.xsl')
FROM T
WHERE xCol.exist('/book/title/text()[contains(.,"custom")]') =1
Wynik kwerendy zawiera zestaw wierszy przekształconych języka XML.
Środowisko CLR integracja SQL Server Rozszerza możliwości decomposing dane XML do tabel lub promocji właściwość, a przy użyciu klas zarządzanych w obszarze nazw System.Xml podczas badania danych XML. Aby uzyskać więcej informacji zobaczOmówienie integracja Runtime (CLR) języka wspólnego.