Sql-Server-2012
在 SQL Server 2012 的 TSQL 函式中使用 XSD 驗證 XML?
我需要在 TSQL 中使用 XSD 驗證 XML。為了使這項任務半自動化,我需要在 TSQL 函式中執行此操作。
要進行驗證,我必須將值設置為 XML,如果它無效,我將收到錯誤消息。
我的問題是在 TSQL 函式里面我不能使用
TRY / CATCH
。這是正確的方式嗎?如果有可能做到這一點?
一個選擇(如果在標量函式的上下文中執行此操作是一項硬性要求,可能是您唯一的選擇)是使用 SQLCLR。SQLCLR 標量函式可以在 C# 或 VB.NET 程式碼中執行 try/catch/finally 結構。因此,您可以將 XML 文件和 XSD 都作為
SqlXml
類型傳入,並在那裡進行驗證。只需返回一個SqlBoolean
它是否驗證。請務必執行以下操作,以便 SQLCLR 函式可以參與並行計劃:
IsDeterministic = true
在SqlFunction
屬性中指定。- 確保該函式位於標記為 的程序集中
WITH PERMISSION_SET = SAFE
。