DECLARE @dbName NVARCHAR(255) SET @dbName = '' DECLARE @assemFolder NVARCHAR(1000) SET @assemFolder = '' -- have to drop the function first because you can't delete the assembly -- when the function is dependant on it IF EXISTS (SELECT * FROM sysobjects WHERE name = N'udf_IsGroupMember') DROP FUNCTION dbo.[udf_IsGroupMember] --if the [SpittingCAML.SQLCLR.DatabaseAssemblies] assembly exists then drop it IF EXISTS (SELECT * FROM sys.assemblies WHERE [name] = 'SpittingCAML.SQLCLR.DatabaseAssemblies') DROP ASSEMBLY [SpittingCAML.SQLCLR.DatabaseAssemblies] CREATE ASSEMBLY [SpittingCAML.SQLCLR.DatabaseAssemblies] FROM @assemFolder + '\SpittingCAML.SQLCLR.DatabaseAssemblies.dll' WITH permission_set = unsafe GO /******************************************************************************** * * Name: [udf_IsGroupMember] * * * Description: * * Function determines if the supplied user is in an active directory group * * NB: this is a MANAGED CODE function utilising the * SpittingCAML.SQLCLR.DatabaseAssemblies assembly class * * Revision History: * * Version Date Author(s) Description * 1.0 08 Dec 2009 SpittingCAML Intial Release * ********************************************************************************/ CREATE FUNCTION [udf_IsGroupMember] ( @user nvarchar(1000), @domain nvarchar(1000), @groupName nvarchar(1000) ) RETURNS BIT AS EXTERNAL NAME [SpittingCAML.SQLCLR.DatabaseAssemblies].[SpittingCAML.SQLCLR.DatabaseAssemblies.ADIntegration].[IsGroupMember] GO