initial commit
This commit is contained in:
104
gaia - archive a pharmacy.sql
Normal file
104
gaia - archive a pharmacy.sql
Normal file
@@ -0,0 +1,104 @@
|
||||
USE [Gaia]
|
||||
GO
|
||||
SET NOCOUNT ON;
|
||||
|
||||
|
||||
DECLARE @Pharamcycode char(6),
|
||||
@Pharmacyalias char(9),
|
||||
@fqdn varchar(30),
|
||||
@Backuppath varchar(50),
|
||||
@DROP bit,
|
||||
@sqlstmt nvarchar(max),
|
||||
@SQLpath varchar(30)
|
||||
|
||||
|
||||
|
||||
/* !!! SET ALL VARIABLES HERE !!! */
|
||||
SET @Pharmacyalias = 'AMA245APS' /* EX: AMA208APS*/
|
||||
SET @fqdn = 'ama245aps.amavita.ch' /* EX: ama208aps.amavita.ch */
|
||||
SET @Pharamcycode = 'AAM245' /* EX: AAM208 */
|
||||
|
||||
SET @SQLpath = 'D:\SQLDatabase\' /* PROD = D:\SQLDatabase\ N1 = D:\SQLDatabase\ N2 = F:\SQLDatabase\ */
|
||||
|
||||
PRINT 'USE [Gaia]
|
||||
';
|
||||
|
||||
/* DROP CERES ROUTE */
|
||||
PRINT('DROP ROUTE [//' + @Pharmacyalias + '/APSSQL/Ceres]')
|
||||
|
||||
/* find active columnstore indexes */
|
||||
DECLARE @tCsIdx TABLE(
|
||||
[schemaName] VARCHAR(50),
|
||||
[tableName] VARCHAR(100),
|
||||
[indexName] VARCHAR(100),
|
||||
[indexType] VARCHAR(50),
|
||||
[disableCmd] AS 'ALTER INDEX ['+[indexName]+'] ON ['+[schemaName]+'].['+[tableName]+'] DISABLE;'+CHAR(13)+CHAR(10),
|
||||
[enableCmd] AS 'ALTER INDEX ['+[indexName]+'] ON ['+[schemaName]+'].['+[tableName]+'] REBUILD;'+CHAR(13)+CHAR(10)
|
||||
);
|
||||
|
||||
INSERT INTO @tCsIdx ([schemaName], [tableName], [indexName], [indexType])
|
||||
|
||||
SELECT
|
||||
OBJECT_SCHEMA_NAME([i].[object_id]) AS [SchemaName]
|
||||
,OBJECT_NAME([i].[object_id]) AS [TableName]
|
||||
,[i].[name] AS [IndexName]
|
||||
,[i].[type_desc] AS [IndexType]
|
||||
FROM [sys].[indexes] AS [i]
|
||||
WHERE [i].[is_hypothetical] = 0
|
||||
AND [i].[index_id] <> 0
|
||||
AND [i].[type_desc] IN ( 'CLUSTERED COLUMNSTORE', 'NONCLUSTERED COLUMNSTORE' )
|
||||
AND i.[is_disabled] = 0
|
||||
;
|
||||
|
||||
/* disable columnstore indexes */
|
||||
DECLARE @csIdxCmd VARCHAR(MAX)='';
|
||||
SELECT @csIdxCmd = @csIdxCmd + [tci].[disableCmd]
|
||||
FROM @tCsIdx [tci];
|
||||
PRINT @csIdxCmd;
|
||||
PRINT ''
|
||||
|
||||
/* PURGE OLD DATA */
|
||||
SELECT 'DELETE FROM [' + s.name + '].[' + t.name + '] WHERE ' + c.name + ' = ''' + @pharamcycode + ''';' as delcmd
|
||||
INTO #AllPurge
|
||||
FROM sys.schemas s
|
||||
JOIN sys.tables t
|
||||
ON t.schema_id = s.schema_id
|
||||
JOIN sys.columns c
|
||||
ON c.object_id = t.object_id
|
||||
AND c.name LIKE '%_pharmacy_code'
|
||||
WHERE s.name = 'phar'
|
||||
ORDER BY t.name
|
||||
|
||||
DECLARE c_alldelcmd CURSOR LOCAL FORWARD_ONLY STATIC FOR
|
||||
SELECT * FROM #AllPurge
|
||||
OPEN c_alldelcmd
|
||||
FETCH NEXT FROM c_alldelcmd
|
||||
INTO @sqlstmt
|
||||
|
||||
WHILE @@fetch_status = 0
|
||||
BEGIN
|
||||
|
||||
PRINT(@sqlstmt)
|
||||
|
||||
FETCH NEXT FROM c_alldelcmd
|
||||
INTO @sqlstmt
|
||||
END
|
||||
|
||||
CLOSE c_alldelcmd
|
||||
DEALLOCATE c_alldelcmd
|
||||
|
||||
/* DROP PARTITION */
|
||||
PRINT'ALTER PARTITION FUNCTION [PF_PharmacyCode] () MERGE RANGE (''' + @pharamcycode + ''');'
|
||||
PRINT'ALTER DATABASE [Gaia] REMOVE FILE [GAIA_' + @pharamcycode + ']'
|
||||
PRINT'ALTER DATABASE [Gaia] REMOVE FILEGROUP [FG_GAIA_' + @pharamcycode + ']'
|
||||
PRINT ''
|
||||
|
||||
/* re-enable columnstore indexes */
|
||||
SET @csIdxCmd = ''
|
||||
SELECT @csIdxCmd = @csIdxCmd + [tci].[enableCmd]
|
||||
FROM @tCsIdx [tci];
|
||||
PRINT @csIdxCmd;
|
||||
PRINT ''
|
||||
|
||||
DROP TABLE #AllPurge
|
||||
GO
|
||||
Reference in New Issue
Block a user