USE [Vertragsverwaltung_20160404] GO /****** Object: UserDefinedFunction [dbo].[Get_SecurityLevel] Script Date: 02.12.2016 09:08:53 ******/ DROP FUNCTION [dbo].[Get_SecurityLevel] GO /****** Object: UserDefinedFunction [dbo].[Get_SecurityLevel] Script Date: 02.12.2016 09:08:55 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO CREATE FUNCTION [dbo].[Get_SecurityLevel] (@mitarbeiternr int) RETURNS int AS BEGIN declare @seclevel int SELECT TOP 1 @seclevel = dbo.SecurityLevel.SecurityLevelNr FROM dbo.funktionsgruppe_rolle INNER JOIN dbo.rolle ON dbo.funktionsgruppe_rolle.rollenr = dbo.rolle.rollenr INNER JOIN dbo.rolle_securitylevel ON dbo.rolle.rollenr = dbo.rolle_securitylevel.rollenr INNER JOIN dbo.funktionsgruppe ON dbo.funktionsgruppe_rolle.funktionsgruppenr = dbo.funktionsgruppe.funktionsgruppenr INNER JOIN dbo.mitarbeiter_funktionsgruppe ON dbo.funktionsgruppe.funktionsgruppenr = dbo.mitarbeiter_funktionsgruppe.funktionsgruppenr INNER JOIN dbo.SecurityLevel ON dbo.rolle_securitylevel.SecurityLevelNr = dbo.SecurityLevel.SecurityLevelNr WHERE (dbo.SecurityLevel.Aktiv = 1) AND (dbo.mitarbeiter_funktionsgruppe.aktiv = 1) AND (dbo.funktionsgruppe.aktiv = 1) AND (dbo.rolle.aktiv = 1) AND (dbo.funktionsgruppe_rolle.aktiv = 1) AND (dbo.rolle_securitylevel.aktiv = 1) and dbo.mitarbeiter_funktionsgruppe.mitarbeiternr=@mitarbeiternr ORDER BY dbo.rolle_securitylevel.SecurityLevelNr desc if @@rowcount = 0 begin set @seclevel=9999 end return @seclevel END GO