Managing CLR Integration Assemblies

Managed code is compiled and then deployed in units called an assembly. An assembly is packaged as a DLL or executable (.exe) file. While an executable file can run on its own, a DLL must be hosted in an existing application. Managed DLL assemblies can be loaded into and hosted by Microsoft SQL Server 2005. SQL Server requires you to register the assembly in a SQL Server database using the CREATE ASSEMBLY statement, before it can be loaded in the process and used. Assemblies can also be updated from a more recent version using the ALTER ASSEMBLY statement, or removed from SQL Server using the DROP ASSEMBLY statement.

Assembly information is stored in the sys.assembly_files table in the database where the assembly has been installed. The sys.assembly_files table contains the following columns.

Column Description


The identifier defined for the assembly. This number is assigned to all objects relating to the same assembly.


The name of the object.


A number identifying each object, with the first object associated with a given assembly_id being given the value of 1. If multiple objects are associated with the same assembly_id, then each subsequent file_id value is incremented by 1.


The hexadecimal representation of the assembly or file.

The following table lists the topics in this section.

Topic Description

Creating an Assembly

Discusses creating SAFE, EXTERNAL_ACCESS, and UNSAFE CLR assemblies in SQL Server.

Altering an Assembly

Describes updating CLR assemblies in SQL Server.

Dropping an Assembly

Discusses dropping CLR assemblies from SQL Server.

See Also


CLR Integration Security
CLR Integration Code Access Security

Help and Information

Getting SQL Server 2005 Assistance

Change History

Release History

5 December 2005

New content:
  • Added information on the sys.assembly_files table.
Updated content:
  • Updated and expanded the Managing CLR Integration Assemblies section.