CLR 集成中的新增功能

以下是 SQL Server 2012 (11.x) 中 CLR 集成中的新功能:

  • 在 CLR 版本 4 中,CLR 数据库对象不再捕获损坏的状态异常。 这些异常现在在 CLR 集成托管层中捕获。 通过设置代码属性(<legacyCorruptedStateExceptionsPolicy> 元素),CLR 数据库组件仍可捕获这些异常。 但是,不建议这样做,因为在发生损坏状态异常时,结果不可靠。

  • 由于 SQL Server 2012(11.x)的安全要求严格,CLR 数据库组件将继续使用 CLR 版本 2.0 中定义的代码访问安全模型。

  • 在 CLR 版本 4 中,值中的 System.TimeSpan 格式错误将生成一个 System.FormatExceptions。 在 CLR 版本 4 之前,忽略值 System.TimeSpan 中的格式错误。 依赖于 CLR 版本 4 之前行为的数据库应用程序应以数据库兼容级别 (ALTER DATABASE Compatibility Level) 100 或更低版本运行。 有关详细信息,请参阅 <TimeSpan_LegacyFormatMode> 元素

  • CLR 版本 4 支持 Unicode 5.1。 将改进涉及某些重音标记和符号的排序作。 如果应用程序依赖于旧排序行为,则可能会出现兼容性问题。 若要启用旧排序,数据库兼容性级别 (ALTER DATABASE Compatibility Level) 必须设置为 100 或更低。 为此,SQL Server 2012 (11.x) 将在 .NET Framework 4 目录中安装 sort00001000.dll(C:\Windows\Microsoft.NET\Framework\v4.0.30319)。 有关详细信息,请参阅 <CompatSortNLSVersion> 元素

  • 以下列已添加到 sys.dm_clr_appdomainstotal_processor_time_mstotal_allocated_memory_kb以及 survived_memory_kb