Udostępnij za pośrednictwem


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.