You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ITSM/.svn/pristine/6f/6f73c7f9493df0568e6f9669abd...

34 lines
3.3 KiB

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