Common language runtime (CLR) integration programming concepts
Applies to: SQL Server (all supported versions) Azure SQL Managed Instance
Beginning with SQL Server 2005 (9.x), SQL Server features the integration of the common language runtime (CLR) component of the .NET Framework for Microsoft Windows.
You can write stored procedures, triggers, user-defined types, user-defined functions, user-defined aggregates, and streaming table-valued functions, using any .NET Framework language, including Visual Basic and C#.
SQL Server CLR integration doesn't support .NET Core, or .NET 5 and later versions.
You can load CLR database objects for SQL Server 2017 (14.x) and later versions on Linux, but they must be built with the .NET Framework. Also, CLR assemblies with the
UNSAFEpermission set aren't supported on Linux.
By default, the .NET Framework runtime is installed with SQL Server, but the .NET Framework SDK is not. To install the latest version of the .NET Framework SDK, see Download .NET Framework Developer Pack.
Microsoft.SqlServer.Servernamespace includes core functionality for CLR programming in SQL Server. For documentation on the
Microsoft.SqlServer.Servernamespace, see Microsoft.SqlServer.Server Namespace (.NET Framework 4.8).
CLR functionality, such as CLR user functions, aren't supported for Azure SQL Database.
In this section
The following table lists the articles in this section.
|Common Language Runtime (CLR) Integration Overview||Provides a brief overview of the CLR, and describes how and why this technology has been used in SQL Server. Describes the benefits of using the CLR to create database objects.|
|Assemblies (Database Engine)||Describes how assemblies are used in SQL Server to deploy functions, stored procedures, triggers, user-defined aggregates, and user-defined types that are written in one of the managed code languages hosted by the Microsoft .NET Framework common language runtime (CLR), and not written in Transact-SQL.|
|Building Database Objects with Common Language Runtime (CLR) Integration||Describes the kinds of objects that can be built using the CLR, and reviews the requirements for building CLR database objects.|
|Data Access from CLR Database Objects||Describes how a CLR routine can access data stored in an instance of SQL Server.|
|CLR Integration Security||Describes the CLR integration security model.|
|Debugging CLR Database Objects||Describes limitations of and requirements for debugging CLR database objects.|
|Deploying CLR Database Objects||Describes deploying assemblies to production servers.|
|Managing CLR Integration Assemblies||Describes how to create and drop CLR integration assemblies.|
|Monitoring and Troubleshooting Managed Database Objects||Provides information about the tools that can be used to monitor and troubleshoot managed database objects and assemblies running in SQL Server.|
|Usage Scenarios and Examples for Common Language Runtime (CLR) Integration||Describes usage scenarios and code samples using CLR objects.|
Submit and view feedback for