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,67 @@
-- =============================================
-- Description: a megadott függvények törlése a megadott vagy összes sémában
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('dbo.sp_Global_DeleteFunctions') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_Global_DeleteFunctions]
END
GO
CREATE PROCEDURE [dbo].[sp_Global_DeleteFunctions]
@pSchemaName NVARCHAR(100), -- pl: 'KR_BEDO_Schema' | NULL esetén az összes sémán végigmegy
@pFunctionNames XML -- pl: '<FunctionNames><FunctionName>fnGetHetNapja</FunctionName></FunctionNames>'
AS
BEGIN
DECLARE @functionName NVARCHAR(4000)
DECLARE @schemaName NVARCHAR(100)
DECLARE @deleteFunctionSQL NVARCHAR(4000)
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
ORDER BY name
DECLARE @functions CURSOR
SET @functions = CURSOR LOCAL FOR
SELECT DISTINCT FunctionName.value('(.)[1]', 'varchar(100)') FROM @pFunctionNames.nodes('FunctionNames/FunctionName') AS FunctionNames(FunctionName)
OPEN @functions
FETCH NEXT FROM @functions INTO @functionName
WHILE @@FETCH_STATUS = 0 BEGIN
OPEN @schemaNames
FETCH NEXT FROM @schemaNames INTO @schemaName
WHILE @@FETCH_STATUS = 0 BEGIN
SET @deleteFunctionSQL = 'IF OBJECT_ID(''[' + @schemaName + '].' + @functionName + ''') IS NOT NULL
DROP FUNCTION [' + @schemaName + '].' + @functionName
PRINT @functionName + ' ' + @schemaName
EXEC sp_executesql @deleteFunctionSQL
FETCH NEXT FROM @schemaNames INTO @schemaName
END
CLOSE @schemaNames
FETCH NEXT FROM @functions INTO @functionName
END
CLOSE @functions
DEALLOCATE @functions
DEALLOCATE @schemaNames
END