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