Upload an assembly that was previously compiled as a .dll file from managed code for use inside an instance of SQL Server.
An Assemby object is a managed application module, other objects may reference this module - stored procedures, triggers, CLR functions, user-defined aggregates/types.
Syntax
      CREATE ASSEMBLY assembly_name
         [ AUTHORIZATION owner_name ]
             FROM { <client_assembly_specifier> | <assembly_bits> [ ,...n ] }
               [WITH PERMISSION_SET = { SAFE | EXTERNAL_ACCESS | UNSAFE } ]
                  [ ; ]
   <client_assembly_specifier> :: =
        '[\\computer_name\]share_name\[path\]manifest_file_name'
        | '[local_path\]manifest_file_name'
   <assembly_bits> :: =
   { varbinary_literal | varbinary_expression }
Key:
   assembly_name  The (unique) name of the assembly.
   owner_name     The usernname or role as owner of the assembly.
   client_assembly_specifier  The local path or network location for the assembly being uploaded.
                  A fixed string or an expression evaluating to a fixed string. (Assembly manifest filename)
   assembly_bits  List of binary values that make up the assembly and it's 
                  dependent assemblies, starting with the root-level assembly.
   PERMISSION_SET SAFE      Restrictive code access permissions, no access to external files/networks.
   PERMISSION_SET EXTERNAL_ACCESS Allow some external system resources, files/networks/Registry
   PERMISSION_SET UNSAFE unrestricted access to resources
Permissions: 
  CREATE ASSEMBLY
  EXTERNAL ACCESS ASSEMBLY for PERMISSION_SET = EXTERNAL_ACCESS
SYSADMIN fixed server role for PERMISSION_SET = UNSAFE
owner_name must either be the name of a role of which the current user is a member, or the current user must have IMPERSONATE permission on owner_name. If not specified, ownership is given to the current user.
  
    When accessing client_assembly_specifier, SQL Server will impersonate either the security context of the current Windows login or the security context of the SQL Server service account.
Example
CREATE ASSEMBLY MyDemo
FROM 'C:\democode\HelloWorld.dll'
WITH PERMISSION_SET = SAFE;
"Until all the powerful are just, the weak will be secure only in the strength of this Assembly" ~ John F. Kennedy, address to the UN General Assembly
Related commands:
  
  ALTER ASSEMBLY
  DROP ASSEMBLY
  CREATE FUNCTION
  CREATE PROCEDURE
  CREATE TRIGGER
  CREATE TYPE
CREATE AGGREGATE
Equivalent Oracle command: