CLR 集成中的新增功能

以下是 SQL Server 2012 中 CLR 集成的新功能:

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

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

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

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

  • 以下列已添加到 sys.dm_clr_appdomains:total_processor_time_ms、total_allocated_memory_kb 和 survived_memory_kb。