CLR Integration - Enabling

Applies to: SQL Server Azure SQL Managed Instance

The common language runtime (CLR) integration feature is off by default, and must be enabled in order to use objects that are implemented using CLR integration. To enable CLR integration, use the clr enabled option of the sp_configure stored procedure in SQL Server Management Studio:

EXEC sp_configure 'clr enabled', 1;  

You can disable CLR integration by setting the clr enabled option to 0. When you disable CLR integration, SQL Server stops executing all user-defined CLR routines and unloads all application domains. Features that rely upon the CLR, such as the hierarchyid data type, the FORMAT function, replication, and Policy-Based Management, are not affected by this setting and will continue to function.


Though the clr enabled configuration option is enabled in Azure SQL Database, developing CLR user functions are not supported in Azure SQL Database.


To enable CLR integration, you must have ALTER SETTINGS server level permission, which is implicitly held by members of the sysadmin and serveradmin fixed server roles.


Computers configured with large amounts of memory and a large number of processors may fail to load the CLR integration feature of SQL Server when starting the server. To address this issue, start the server by using the -gmemory_to_reserveSQL Server service startup option, and specify a memory value large enough. For more information, see Database Engine Service Startup Options.


Common language runtime (CLR) execution is not supported under lightweight pooling. Before enabling CLR integration, you must disable lightweight pooling. For more information, see lightweight pooling Server Configuration Option.

See Also