39 lines
1.2 KiB
Transact-SQL
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
|