-- ============================================= -- 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: 'A_VIEW_NEVE' 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