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.
34 lines
3.3 KiB
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
|