This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

View file

@ -0,0 +1,100 @@
-- =============================================
-- Description: a dbo sémában lévõ nem globális tárolt eljárások frissítése az intézményi sémákba
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_Global_CreateSchemaStoredProcedures') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_Global_CreateSchemaStoredProcedures]
END
GO
CREATE PROCEDURE [dbo].[sp_Global_CreateSchemaStoredProcedures]
@pSchemaName NVARCHAR(100), -- pl: 'KR_BEDO_Schema' | NULL esetén az összes sémán végigmegy
@pStoredProcedureNames XML -- pl: '<StoredProcedureNames><StoredProcedureName>sp_GetOrarend</StoredProcedureName></StoredProcedureNames>' | NULL esetén az összes nem globális tárolt eljáráson végigmegy
AS
BEGIN
DECLARE @objectId INT
DECLARE @storedProcedureName NVARCHAR(4000)
DECLARE @storedProcedureDefinition NVARCHAR(MAX)
DECLARE @schemaName NVARCHAR(100)
DECLARE @deleteStoredProcedureSQL NVARCHAR(4000)
DECLARE @createStoredProcedureSQL NVARCHAR(MAX)
DECLARE @schemaNames CURSOR
IF @pSchemaName IS NOT NULL
SET @schemaNames = CURSOR LOCAL FOR
SELECT @pSchemaName
ELSE
SET @schemaNames = CURSOR LOCAL FOR
SELECT name FROM sys.schemas
WHERE principal_id = 1 AND name LIKE 'KR[_]%[_]Schema'
ORDER BY name
DECLARE @storedProcedures CURSOR
IF @pStoredProcedureNames IS NOT NULL
SET @storedProcedures = CURSOR LOCAL FOR
SELECT p.object_id, p.name, m.Definition
FROM sys.procedures p
INNER JOIN sys.sql_modules m ON p.object_id = m.object_id
INNER JOIN sys.schemas s ON s.schema_id = p.schema_id
WHERE
s.name ='dbo'
AND p.name IN (SELECT DISTINCT StoredProcedureName.value('(.)[1]', 'varchar(100)') FROM @pStoredProcedureNames.nodes('StoredProcedureNames/StoredProcedureName') AS StoredProcedureNames(StoredProcedureName))
ORDER BY p.name
ELSE
SET @storedProcedures = CURSOR LOCAL FOR
SELECT p.object_id, p.name, m.Definition
FROM sys.procedures p
INNER JOIN sys.sql_modules m ON p.object_id = m.object_id
INNER JOIN sys.schemas s ON s.schema_id = p.schema_id
WHERE s.name ='dbo' AND p.name NOT LIKE 'sp_Global_%'
ORDER BY p.name
OPEN @storedProcedures
FETCH NEXT FROM @storedProcedures INTO @objectId, @storedProcedureName, @storedProcedureDefinition
WHILE @@FETCH_STATUS = 0 BEGIN
IF OBJECT_ID(@objectId) IS NULL BEGIN
SET @storedProcedureDefinition = REPLACE(@storedProcedureDefinition, 'dbo.fn','#schemaName#.fn')
SET @storedProcedureDefinition = REPLACE(@storedProcedureDefinition, 'dbo.[fn','#schemaName#.[fn')
SET @storedProcedureDefinition = REPLACE(@storedProcedureDefinition, '[dbo].fn','#schemaName#.fn')
SET @storedProcedureDefinition = REPLACE(@storedProcedureDefinition, '[dbo].[fn','#schemaName#.[fn')
SET @storedProcedureDefinition = REPLACE(@storedProcedureDefinition, 'dbo.','')
SET @storedProcedureDefinition = REPLACE(@storedProcedureDefinition, '[dbo].','')
OPEN @schemaNames
FETCH NEXT FROM @schemaNames INTO @schemaName
WHILE @@FETCH_STATUS = 0 BEGIN
SET @deleteStoredProcedureSQL = 'IF OBJECT_ID(''[' + @schemaName + '].' + @storedProcedureName + ''') IS NOT NULL
DROP PROCEDURE [' + @schemaName + '].' + @storedProcedureName
SET @createStoredProcedureSQL = REPLACE(@storedProcedureDefinition, 'CREATE PROCEDURE ','CREATE PROCEDURE [' + @schemaName + '].')
SET @createStoredProcedureSQL = REPLACE(@createStoredProcedureSQL, '#schemaName#.fn','[' + @schemaName + '].fn')
SET @createStoredProcedureSQL = REPLACE(@createStoredProcedureSQL, '#schemaName#.[fn','[' + @schemaName + '].[fn')
PRINT CAST(@objectId AS VARCHAR(10)) + ' ' + @storedProcedureName + ' ' + @schemaName
EXEC sp_executesql @deleteStoredProcedureSQL
EXEC sp_executesql @createStoredProcedureSQL
FETCH NEXT FROM @schemaNames INTO @schemaName
END
CLOSE @schemaNames
END
FETCH NEXT FROM @storedProcedures INTO @objectId, @storedProcedureName, @storedProcedureDefinition
END
CLOSE @storedProcedures
DEALLOCATE @storedProcedures
DEALLOCATE @schemaNames
END

View file

@ -0,0 +1,141 @@
-- =============================================
-- Author: Kecskeméthy Zsolt
-- Create date: 2016.05.09
-- Description: Intézményhez tartozó adatok.
-- =============================================
DROP PROCEDURE IF EXISTS [dev].[uspIntezmenyLetrehozas]
GO
CREATE PROCEDURE [dev].[uspIntezmenyLetrehozas]
@fenntartoAzonosito nvarchar(20),
@intezmenyAzonosito nvarchar(30),
@tanevNeve nvarchar(200),
@kovetkezoTanevNeve nvarchar(200),
@intezmenyNeve nvarchar(255),
@intezmenyIranyitoSzam nvarchar(20),
@intezmenyVaros nvarchar(255),
@intezmenyKozteruletNev nvarchar(40),
@intezmenyKozteruletJelleg int,
@intezmenyHazszam nvarchar(30),
@intezmenyEmelet nvarchar(40),
@intezmenyAjto nvarchar(30),
@intezmenyOMKod nvarchar(20),
@intezmenyIgazgato nvarchar(255),
@intezmenyTagkod nvarchar(50),
@intezmenyEmail nvarchar(255),
@adminJelszo nvarchar(8),
@fenntartoJelszo nvarchar(8),
@kellABHet bit,
@teljesKreta bit,
@dbJelszo nvarchar(50)
AS
BEGIN
DECLARE @intezmenyID int = (SELECT TOP 1 ID FROM T_INTEZMENY WHERE T_INTEZMENY.C_AZONOSITO = @intezmenyAzonosito);
-- Létezik-e az intézmény
IF(@intezmenyID IS NULL)
BEGIN
-- Intézmény létrehozása
INSERT INTO [dbo].[T_INTEZMENY]
([C_AZONOSITO]
,[C_POSZEIDONBEJELENTKEZESINEV]
,[C_IKTATOSZERVEZETAZONOSITO]
,[C_FENNTARTOAZONOSITO]
,[C_FENNTARTOID]
,[TOROLT]
,[SERIAL]
,[LASTCHANGED]
,[CREATED]
,[MODIFIER]
,[CREATOR])
VALUES
(@intezmenyAzonosito
,@intezmenyAzonosito
,@intezmenyAzonosito
,@fenntartoAzonosito
,0
,'F'
,0
,getdate()
,getdate()
,null
,null)
SET @intezmenyID = SCOPE_IDENTITY();
PRINT 'Intézmény létrehozása sikeres! (ID:' + CAST(@intezmenyID as VARCHAR) + ')';
END
ELSE
BEGIN
PRINT 'Már létezik az intézmény! (ID:' + CAST(@intezmenyID AS VARCHAR) + ')';
--PRINT 'Kilépés';
--RETURN 1;
END
-- Aktuális tanév létrehozása
DECLARE @tanevID int = (SELECT TOP 1 ID FROM T_TANEV WHERE T_TANEV.C_NEV = @tanevNeve AND T_TANEV.C_INTEZMENYID = @intezmenyID AND TOROLT = 'F');
IF @tanevID IS NULL BEGIN
-- tanéves adatok létrehozása
EXEC [dev].[uspGenerateTanevAdatok]
@intezmenyId = @intezmenyID
,@intezmenyAzonosito = @intezmenyAzonosito
,@tanevNeve = @tanevNeve
,@kovetkezoTanev = 0
,@intezmenyNeve = @intezmenyNeve
,@intezmenyIranyitoSzam = @intezmenyIranyitoSzam
,@intezmenyVaros = @intezmenyVaros
,@intezmenyKozteruletNev = @intezmenyKozteruletNev
,@intezmenyKozteruletJelleg = @intezmenyKozteruletJelleg
,@intezmenyHazszam = @intezmenyHazszam
,@intezmenyEmelet = @intezmenyEmelet
,@intezmenyAjto = @intezmenyAjto
,@intezmenyOMKod = @intezmenyOMKod
,@intezmenyIgazgato = @intezmenyIgazgato
,@intezmenyTagkod = @intezmenyTagkod
,@intezmenyEmail = @intezmenyEmail
,@adminJelszo = @adminJelszo
,@fenntartoJelszo = @fenntartoJelszo
,@kellABHet = @kellABHet
,@teljesKreta = @teljesKreta
,@dbJelszo = @dbJelszo
END
ELSE BEGIN
PRINT 'Már létezik ilyan tanév! (ID:' + CAST(@tanevID AS VARCHAR) + ', Tanév: '+ @tanevNeve +')';
END
-- Következő tanév létrehozása, ha szükséges
IF @kovetkezoTanevNeve IS NOT NULL AND @kovetkezoTanevNeve != '' BEGIN
SET @tanevID = (SELECT TOP 1 ID FROM T_TANEV WHERE T_TANEV.C_NEV = @kovetkezoTanevNeve AND T_TANEV.C_INTEZMENYID = @intezmenyID AND TOROLT = 'F');
IF @tanevID IS NULL BEGIN
-- tanéves adatok létrehozása
EXEC [dev].[uspGenerateTanevAdatok]
@intezmenyId = @intezmenyID
,@intezmenyAzonosito = @intezmenyAzonosito
,@tanevNeve = @kovetkezoTanevNeve
,@kovetkezoTanev = 1
,@intezmenyNeve = @intezmenyNeve
,@intezmenyIranyitoSzam = @intezmenyIranyitoSzam
,@intezmenyVaros = @intezmenyVaros
,@intezmenyKozteruletNev = @intezmenyKozteruletNev
,@intezmenyKozteruletJelleg = @intezmenyKozteruletJelleg
,@intezmenyHazszam = @intezmenyHazszam
,@intezmenyEmelet = @intezmenyEmelet
,@intezmenyAjto = @intezmenyAjto
,@intezmenyOMKod = @intezmenyOMKod
,@intezmenyIgazgato = @intezmenyIgazgato
,@intezmenyTagkod = @intezmenyTagkod
,@intezmenyEmail = @intezmenyEmail
,@adminJelszo = @adminJelszo
,@fenntartoJelszo = @fenntartoJelszo
,@kellABHet = @kellABHet
,@teljesKreta = @teljesKreta
,@dbJelszo = @dbJelszo
END
ELSE BEGIN
PRINT 'Már létezik ilyan tanév! (ID:' + CAST(@tanevID AS VARCHAR) + ', Tanév: '+ @kovetkezoTanevNeve +')';
PRINT 'Kilépés';
RETURN ;
END
END
END