This technology, introduced in Microsoft SQL Server 2005, allow users for example to create the following types of managed code objects in SQL Server in .NET languages such as [[C Sharp|C#]] or [[VB.NET]].
: *[[storedStored procedure]]s (SP's) which are analogous to ''procedures'' or ''void functions'' in procedural languages like VB or C,
: *[[databaseDatabase trigger|triggers]] which are stored procedures that fire in response to [[Data Manipulation Language]] (DML) or [[Data Definition Language]] (DDL) events,
: *[[userUser-defined function]]s (UDF's) which are analagous to functions in procedural languages,
: *[[userUser-defined aggregate]]s (UDA's) which allow developers to create custom aggregates that act on sets of data instead of one row at a time,
: *[[userUser-defined type]]s (UDT's) that allow users to create simple or complex data types which can be serialized and deserialized within the database.
The SQL CLR relies on the creation, deployment, and registration of .NET ''assemblies'', which are physically stored in managed code dynamic load libraries (DLL's). These assemblies may contain .NET namespaces, classes, functions and properties.