kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20190307170315_DB_474/sp_Global_DeleteViews.sql
2024-03-13 00:33:46 +01:00

39 lines
1.2 KiB
Transact-SQL

-- =============================================
-- Description: a megadott view-k 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_DeleteViews') IS NOT NULL BEGIN
DROP PROCEDURE [dbo].[sp_Global_DeleteViews]
END
GO
CREATE PROCEDURE [dbo].[sp_Global_DeleteViews]
@pSchemaName NVARCHAR(100), -- pl: 'KR_BEDO_Schema' | NULL esetén az összes sémán végigmegy
@pViewNames XML -- pl: '<ViewNames><ViewName>A_VIEW_NEVE</ViewName></ViewNames>'
AS
BEGIN
DECLARE @sql nvarchar(max) = ''
SELECT @sql += N'DROP VIEW IF EXISTS [' + TABLE_SCHEMA + N'].[' + TABLE_NAME + N']' + CHAR(13) + CHAR(10)
FROM INFORMATION_SCHEMA.TABLES
WHERE (
TABLE_NAME IN (
SELECT DISTINCT ViewName.value('(.)[1]', 'varchar(100)')
FROM @pViewNames.nodes('ViewNames/ViewName') AS ViewNames(ViewName)
) OR
TABLE_NAME IN (
SELECT DISTINCT ViewName.value('(.)[1]', 'varchar(100)') + '_OSSZES'
FROM @pViewNames.nodes('ViewNames/ViewName') AS ViewNames(ViewName)
)
)
AND TABLE_TYPE = 'VIEW'
AND (TABLE_SCHEMA = @pSchemaName OR @pSchemaName IS NULL)
EXEC sp_executesql @sql
END
GO