kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dev/uspCreateSchemaAndOthers.sql
2024-03-13 00:33:46 +01:00

64 lines
1.6 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS dev.[uspCreateSchemaAndOthers]
GO
CREATE PROCEDURE dev.[uspCreateSchemaAndOthers]
@pDbJelszo nvarchar(50)
,@pIntezmenyIds nvarchar(500) = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @intCursor CURSOR
DECLARE
@intezmenyId int
,@tanevId int
,@intezmenyAzonosito nvarchar(80)
,@schemaName nvarchar(80)
IF @pIntezmenyIds IS NULL BEGIN
SET @intCursor = CURSOR FOR
SELECT i.ID, tv.ID, i.C_AZONOSITO
FROM T_INTEZMENY i
INNER JOIN T_TANEV tv ON tv.C_INTEZMENYID = i.ID AND tv.TOROLT = 'F' AND tv.C_AKTIV = 'T'
WHERE i.TOROLT = 'F'
END
ELSE BEGIN
SET @intCursor = CURSOR FOR
SELECT i.ID, tv.ID, i.C_AZONOSITO
FROM T_INTEZMENY i
INNER JOIN STRING_SPLIT(@pIntezmenyIds, ',') ss ON LTRIM(RTRIM(ss.value)) = i.ID
INNER JOIN T_TANEV tv ON tv.C_INTEZMENYID = i.ID AND tv.TOROLT = 'F' AND tv.C_AKTIV = 'T'
WHERE i.TOROLT = 'F'
END
OPEN @intCursor
FETCH NEXT FROM @intCursor INTO @intezmenyId, @tanevId, @intezmenyAzonosito
WHILE @@FETCH_STATUS = 0 BEGIN
SET @schemaName = 'KR_' + @intezmenyAzonosito + '_Schema'
EXEC dev.uspCreateSchema
@pIntezmenyAzonosito = @intezmenyAzonosito
,@pSchemaUserPassword = @pDbJelszo;
EXEC dev.uspCreateSchemaViews
@pTables = NULL
,@pSchemas = @schemaName
,@pDebugMode = 0
EXEC dev.uspCreateSchemaSPFN
@pRoutinList = NULL
,@pSchemaName = @schemaName
FETCH NEXT FROM @intCursor INTO @intezmenyId, @tanevId, @intezmenyAzonosito
END
CLOSE @intCursor
DEALLOCATE @intCursor
END
GO