CLR 統合における新機能

SQL Server 2012 の CLR 統合で新しくなった点は次のとおりです。

  • CLR のバージョン 4 では、破損状態の例外を CLR データベース オブジェクトはキャッチしません。 これらの例外は、CLR 統合ホスト層でキャッチされるようになりました。 コード属性 (<legacyCorruptedStateExceptionsPolicy> 要素) を設定すると、従来どおり、CLR データベース コンポーネントでこれらの例外をキャッチできます。 ただし、破損状態の例外が発生した場合の結果には信頼性がないため、この設定はお勧めできません。

  • SQL Server 2012 には厳しいセキュリティ要件があるため、CLR データベース コンポーネントには、今後も CLR バージョン 2.0 で定義されたコード アクセス セキュリティ モデルが使用されます。

  • CLR バージョン 4 では、System.TimeSpan 値の形式に誤りがあると、System.FormatExceptions が生成されます。 バージョン 4 未満の CLR では、System.TimeSpan 値の形式に誤りがあっても無視されていました。 CLR バージョン 4 未満の動作に依存するデータベース アプリケーションは、データベース互換性レベル (ALTER DATABASE Compatibility Level) を 100 以下にして実行する必要があります。 詳細については、「<TimeSpan_LegacyFormatMode> 要素」を参照してください。

  • CLR のバージョン 4 は、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 の各列が追加されました。