-- must enable CLR on the database EXEC sp_configure 'show advanced options' , '1'; go reconfigure; go EXEC sp_configure 'clr enabled' , '1' go reconfigure; DECLARE @dbName NVARCHAR(255) SET @dbName = '' DECLARE @sql NVARCHAR(4000) SET @sql = 'USE ' + @dbName; -- must make database trustworthy EXEC sp_executesql @sql EXEC sp_changedbowner 'sa' SET @sql = 'ALTER DATABASE ' + @dbName + ' SET TRUSTWORTHY ON;' EXEC sp_executesql @sql GO DECLARE @DotNet2Folder NVARCHAR(1000) DECLARE @DotNet35Folder NVARCHAR(1000) DECLARE @path NVARCHAR(4000) SET @DotNet2Folder = 'C:\Windows\Microsoft.NET\Framework\v2.0.50727' SET @DotNet35Folder = 'C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5' --if the [System.Core] assembly exists then drop it IF EXISTS (SELECT * FROM sys.assemblies WHERE [name] = 'System.Core') DROP ASSEMBLY [System.Core] --if the [System.DirectoryServices.AccountManagement] assembly exists then drop it IF EXISTS (SELECT * FROM sys.assemblies WHERE [name] = 'System.DirectoryServices.AccountManagement') DROP ASSEMBLY [System.DirectoryServices.AccountManagement] --if the [System.DirectoryServices.Protocols] assembly exists then drop it IF EXISTS (SELECT * FROM sys.assemblies WHERE [name] = 'System.DirectoryServices.Protocols') DROP ASSEMBLY [System.DirectoryServices.Protocols] --if the [System.DirectoryServices] assembly exists then drop it IF EXISTS (SELECT * FROM sys.assemblies WHERE [name] = 'System.DirectoryServices') DROP ASSEMBLY [System.DirectoryServices] CREATE ASSEMBLY [System.Core] FROM @DotNet35Folder + '\system.core.dll' WITH permission_set = UNSAFE CREATE ASSEMBLY [System.DirectoryServices.Protocols] FROM @DotNet2Folder + '\System.DirectoryServices.Protocols.dll' WITH PERMISSION_SET = UNSAFE CREATE ASSEMBLY [System.DirectoryServices.AccountManagement] FROM @DotNet35Folder + '\System.DirectoryServices.AccountManagement.dll' WITH permission_set = UNSAFE CREATE ASSEMBLY [System.DirectoryServices] FROM @DotNet2Folder + '\System.DirectoryServices.dll' WITH PERMISSION_SET = UNSAFE GO