init
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
DROP PROCEDURE IF EXISTS dev.uspDropSchemaViews
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dev.uspDropSchemaViews
|
||||
@pViewList nvarchar(max) -- Vesszővel elválasztott SP és FN lista (akár vegyesen is), NULL esetén az összeset frissíti
|
||||
,@pSchemaName nvarchar(max) = NULL -- Schema neve, amit frissíteni kell, NULL esetén az összes schemán végigmegy
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE
|
||||
@sql nvarchar(max) = '';
|
||||
|
||||
IF @pSchemaName IS NULL AND @pViewList IS NULL BEGIN
|
||||
RETURN
|
||||
END
|
||||
|
||||
DECLARE @View TABLE (
|
||||
Id int IDENTITY(1, 1)
|
||||
,ViewName nvarchar(255)
|
||||
)
|
||||
|
||||
INSERT INTO @View (ViewName)
|
||||
SELECT LTRIM(RTRIM(s.value))
|
||||
FROM STRING_SPLIT (@pViewList, N',') s
|
||||
UNION ALL
|
||||
SELECT LTRIM(RTRIM(s.value)) + '_OSSZES'
|
||||
FROM STRING_SPLIT (@pViewList, N',') s
|
||||
|
||||
|
||||
IF @pSchemaName IS NULL BEGIN
|
||||
|
||||
SELECT @sql += 'DROP VIEW IF EXISTS [' + SCHEMA_NAME(v.schema_id) + '].[' + v.name + ']' + char(13) + char(10)
|
||||
FROM sys.views v
|
||||
INNER JOIN @View x ON x.ViewName COLLATE HUNGARIAN_CI_AS = v.name COLLATE HUNGARIAN_CI_AS
|
||||
ORDER BY x.Id
|
||||
END
|
||||
|
||||
IF @pViewList IS NULL BEGIN
|
||||
|
||||
SELECT @sql += 'DROP VIEW IF EXISTS [' + SCHEMA_NAME(v.schema_id) + '].[' + v.name + ']' + char(13) + char(10)
|
||||
FROM sys.views v
|
||||
WHERE SCHEMA_NAME(v.schema_id) = @pSchemaName
|
||||
|
||||
END
|
||||
|
||||
IF @pViewList IS NULL AND @pSchemaName IS NOT NULL BEGIN
|
||||
|
||||
SELECT @sql += 'DROP VIEW IF EXISTS [' + SCHEMA_NAME(v.schema_id) + '].[' + v.name + ']' + char(13) + char(10)
|
||||
FROM sys.views v
|
||||
INNER JOIN @View x ON x.ViewName COLLATE HUNGARIAN_CI_AS = v.name COLLATE HUNGARIAN_CI_AS
|
||||
WHERE SCHEMA_NAME(v.schema_id) = @pSchemaName
|
||||
|
||||
END
|
||||
|
||||
EXEC sp_executesql @sql
|
||||
|
||||
END
|
||||
GO
|
||||
|
||||
Reference in New Issue
Block a user