sync
This commit is contained in:
38
EXPLOIT - Triafin messages sent per day from gaia server.sql
Normal file
38
EXPLOIT - Triafin messages sent per day from gaia server.sql
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
USE [Gaia]
|
||||||
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
|
||||||
|
GO
|
||||||
|
DECLARE @date_separator CHAR(1)='-'
|
||||||
|
SELECT
|
||||||
|
COUNT(1) AS cnt
|
||||||
|
--, DATEPART(DAY, [c].[StartConversationDate]) AS [day]
|
||||||
|
--, DATEPART(MONTH, [c].[StartConversationDate]) AS [month]
|
||||||
|
, RIGHT('0000'+CAST(DATEPART(YEAR, [c].[StartConversationDate]) AS VARCHAR(4)),4)+@date_separator
|
||||||
|
+RIGHT('00'+CAST(DATEPART(MONTH, [c].[StartConversationDate]) AS VARCHAR(2)), 2)+@date_separator
|
||||||
|
+RIGHT('00'+CAST(DATEPART(DAY, [c].[StartConversationDate]) AS VARCHAR(2)), 2) AS [date]
|
||||||
|
, r.[requestType]
|
||||||
|
, c.[PharmacyCode]
|
||||||
|
FROM [crs].[Conversation] c
|
||||||
|
OUTER APPLY (
|
||||||
|
SELECT req.value('@RequestType', 'nvarchar(50)') AS requestType
|
||||||
|
FROM [crs].[Conversation] x
|
||||||
|
OUTER APPLY x.[Request].nodes('Request') xx(req)
|
||||||
|
WHERE x.[ConversationId] = c.[ConversationId]
|
||||||
|
) r
|
||||||
|
WHERE [c].[StartConversationDate] > '20251201'
|
||||||
|
AND [c].[PharmacyCode]='ama553'
|
||||||
|
GROUP BY
|
||||||
|
DATEPART(DAY, [c].[StartConversationDate])
|
||||||
|
, DATEPART(MONTH, [c].[StartConversationDate])
|
||||||
|
, DATEPART(YEAR, [c].[StartConversationDate])
|
||||||
|
, r.[requestType]
|
||||||
|
, c.[PharmacyCode]
|
||||||
|
ORDER BY
|
||||||
|
DATEPART(YEAR, [c].[StartConversationDate]) ASC
|
||||||
|
, DATEPART(MONTH, [c].[StartConversationDate]) ASC
|
||||||
|
, DATEPART(DAY, [c].[StartConversationDate]) ASC
|
||||||
|
, [c].[PharmacyCode] ASC
|
||||||
|
, COUNT(1) DESC
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
--137'131 conversations since 1st of december 2025
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
--databases space
|
--how much data we pad when we shrink, and the min disk size to start a shrink
|
||||||
|
DECLARE @limit INT=512;
|
||||||
|
|
||||||
IF OBJECT_ID('tempdb..#dbs')IS NOT NULL BEGIN;
|
IF OBJECT_ID('tempdb..#dbs')IS NOT NULL BEGIN;
|
||||||
DROP TABLE #dbs;
|
DROP TABLE #dbs;
|
||||||
END;
|
END;
|
||||||
@@ -7,12 +9,12 @@ CREATE TABLE #dbs ( [database_name] NVARCHAR(128), [log_size_mb] DECIMAL(18,2),
|
|||||||
|
|
||||||
INSERT INTO [#dbs] ([database_name], [log_size_mb], [row_size_mb], [total_size_mb])
|
INSERT INTO [#dbs] ([database_name], [log_size_mb], [row_size_mb], [total_size_mb])
|
||||||
SELECT
|
SELECT
|
||||||
database_name = DB_NAME(database_id)
|
database_name = DB_NAME([F].[database_id])
|
||||||
, log_size_mb = CAST(SUM(CASE WHEN f.type_desc = 'LOG' THEN size END) * 8. / 1024 AS DECIMAL(18,2))
|
, log_size_mb = CAST(SUM(CASE WHEN [F].[type_desc] = 'LOG' THEN [F].[size] END) * 8. / 1024 AS DECIMAL(18,2))
|
||||||
, row_size_mb = CAST(SUM(CASE WHEN type_desc = 'ROWS' THEN size END) * 8. / 1024 AS DECIMAL(18,2))
|
, row_size_mb = CAST(SUM(CASE WHEN [F].[type_desc] = 'ROWS' THEN [F].[size] END) * 8. / 1024 AS DECIMAL(18,2))
|
||||||
, total_size_mb = CAST(SUM(size) * 8. / 1024 AS DECIMAL(18,2))
|
, total_size_mb = CAST(SUM([F].[size]) * 8. / 1024 AS DECIMAL(18,2))
|
||||||
FROM sys.master_files F WITH(NOWAIT)
|
FROM sys.master_files F WITH(NOWAIT)
|
||||||
GROUP BY F.database_id
|
GROUP BY [F].[database_id]
|
||||||
ORDER BY [total_size_mb] DESC
|
ORDER BY [total_size_mb] DESC
|
||||||
|
|
||||||
IF OBJECT_ID('tempdb..#FileSize')IS NOT NULL BEGIN;
|
IF OBJECT_ID('tempdb..#FileSize')IS NOT NULL BEGIN;
|
||||||
@@ -26,7 +28,7 @@ CREATE TABLE #FileSize(
|
|||||||
FreeSpaceMB DECIMAL(10,2) NULL
|
FreeSpaceMB DECIMAL(10,2) NULL
|
||||||
)
|
)
|
||||||
INSERT INTO #FileSize(dbName, FileName, type_desc, CurrentSizeMB, FreeSpaceMB)
|
INSERT INTO #FileSize(dbName, FileName, type_desc, CurrentSizeMB, FreeSpaceMB)
|
||||||
exec sp_msforeachdb
|
exec [sys].[sp_MSforeachdb]
|
||||||
'use [?];
|
'use [?];
|
||||||
SELECT DB_NAME() AS DbName,
|
SELECT DB_NAME() AS DbName,
|
||||||
name AS FileName,
|
name AS FileName,
|
||||||
@@ -41,19 +43,25 @@ SELECT *
|
|||||||
FROM #FileSize
|
FROM #FileSize
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
--details
|
||||||
SELECT
|
SELECT
|
||||||
d.[name] AS dbName
|
d.[name] AS dbName
|
||||||
,f.[physical_name] AS physicalFileName
|
,[F].[physical_name] AS physicalFileName
|
||||||
,f.[name] AS logicalFileName
|
,f.[name] AS logicalFileName
|
||||||
--,d2.[log_size_mb]
|
--,d2.[log_size_mb]
|
||||||
--,d2.[row_size_mb]
|
--,d2.[row_size_mb]
|
||||||
|
,[d].[recovery_model_desc]
|
||||||
,'-----' AS separator
|
,'-----' AS separator
|
||||||
,CAST(f.size * 8.0 / 1024 AS DECIMAL(18,2)) AS fileSizeMB
|
--,CAST(f.size * 8.0 / 1024 AS DECIMAL(18,2)) AS fileSizeMB
|
||||||
,fs.[FreeSpaceMB] AS FreeSpaceInFileMB
|
,REPLACE(REPLACE(CONVERT(VARCHAR(100), CONVERT(MONEY, CAST([F].[size] * 8.0 / 1024 AS DECIMAL(18,2))), 1),',',''''),'.00','') as fileSizeMB
|
||||||
,fs.[CurrentSizeMB] - fs.[FreeSpaceMB] AS SpaceUsedMB
|
--,fs.[FreeSpaceMB] AS FreeSpaceInFileMB
|
||||||
,CAST((fs.[CurrentSizeMB] - fs.[FreeSpaceMB]) * 100 / (CAST(f.size * 8. / 1024 AS DECIMAL(18,2))) AS NUMERIC(6,2)) AS fileSpaceUsedPercent
|
,REPLACE(REPLACE(CONVERT(VARCHAR(100), CONVERT(MONEY, [fs].[FreeSpaceMB]), 1),',',''''),'.00','') as FreeSpaceInFileMB
|
||||||
|
--,(CAST(fs.[CurrentSizeMB] - fs.[FreeSpaceMB] AS MONEY))AS SpaceUsedMB
|
||||||
|
,REPLACE(REPLACE(CONVERT(VARCHAR(100), CONVERT(MONEY, [fs].[CurrentSizeMB] - [fs].[FreeSpaceMB]), 1),',',''''),'.00','') as SpaceUsedMB
|
||||||
|
,CAST(([fs].[CurrentSizeMB] - [fs].[FreeSpaceMB]) * 100 / (CAST([F].[size] * 8. / 1024 AS DECIMAL(18,2))) AS NUMERIC(6,2)) AS fileSpaceUsedPercent
|
||||||
,'-----' AS separator
|
,'-----' AS separator
|
||||||
,d2.[total_size_mb] AS totalDbSizeMB
|
--,d2.[total_size_mb] AS totalDbSizeMB
|
||||||
|
,REPLACE(REPLACE(CONVERT(VARCHAR(100), CONVERT(MONEY, [d2].[total_size_mb]), 1),',',''''),'.00','') as totalDbSizeMB
|
||||||
,'USE '+d.name+';
|
,'USE '+d.name+';
|
||||||
DBCC SHRINKFILE (N'''+f.[name]+''' , 0, TRUNCATEONLY);
|
DBCC SHRINKFILE (N'''+f.[name]+''' , 0, TRUNCATEONLY);
|
||||||
GO
|
GO
|
||||||
@@ -65,28 +73,31 @@ GO
|
|||||||
|
|
||||||
' AS reorganizeData
|
' AS reorganizeData
|
||||||
,'USE '+d.name+';
|
,'USE '+d.name+';
|
||||||
IF 1024 < '+CAST(CAST(f.size * 8.0 / 1024 AS DECIMAL(18,2)) AS VARCHAR(15))+' --file is above 1Go
|
IF '+CAST(@limit AS VARCHAR(10))+' < '+CAST(CAST([F].[size] * 8.0 / 1024 AS DECIMAL(18,2)) AS VARCHAR(15))+' --file is above limit
|
||||||
AND 95 > '+CAST(CAST((fs.[CurrentSizeMB] - fs.[FreeSpaceMB]) * 100 / (CAST(f.size * 8.0 / 1024 AS DECIMAL(18,2))) AS DECIMAL(6,2))AS VARCHAR(15))+' --and usage below 95%
|
AND 95 > '+CAST(CAST(([fs].[CurrentSizeMB] - [fs].[FreeSpaceMB]) * 100 / (CAST([F].[size] * 8.0 / 1024 AS DECIMAL(18,2))) AS DECIMAL(6,2))AS VARCHAR(15))+' --and file container usage below 95%
|
||||||
AND 0 < '+CAST(CAST(fs.[CurrentSizeMB] - fs.[FreeSpaceMB] AS DECIMAL(16,2))AS VARCHAR(15))+' --and data are present
|
AND 0 < '+CAST(CAST([fs].[CurrentSizeMB] - [fs].[FreeSpaceMB] AS DECIMAL(16,2))AS VARCHAR(15))+' --and data are present
|
||||||
|
AND '+CAST(CAST([fs].[CurrentSizeMB] - [fs].[FreeSpaceMB] + @limit AS DECIMAL(18,0)) AS VARCHAR(15))+' < '+CAST(CAST([fs].[CurrentSizeMB] AS DECIMAL(18,0)) AS VARCHAR(15))+' --target size is smaller than current size
|
||||||
BEGIN
|
BEGIN
|
||||||
--print ''Reorganize '+d.name+'.'+f.name+' ''
|
--print ''Reorganize '+d.name+'.'+f.name+' ''
|
||||||
RAISERROR(''Reorganize '+d.name+'.'+f.name+' '',0,0) WITH NOWAIT
|
RAISERROR(''Reorganize '+d.name+'.'+f.name+' '',0,0) WITH NOWAIT
|
||||||
|
|
||||||
DBCC SHRINKFILE (N'''+f.[name]+''' , '+CAST(CAST(fs.[CurrentSizeMB] - fs.[FreeSpaceMB] + 1024 AS DECIMAL(18,0)) AS VARCHAR(15))+');
|
DBCC SHRINKFILE (N'''+f.[name]+''' , '+CAST(CAST([fs].[CurrentSizeMB] - [fs].[FreeSpaceMB] + @limit AS DECIMAL(18,0)) AS VARCHAR(15))+');
|
||||||
RAISERROR(''Done'',0,0) WITH NOWAIT
|
RAISERROR(''Done'',0,0) WITH NOWAIT
|
||||||
END
|
END
|
||||||
GO
|
GO
|
||||||
' AS auto_action
|
' AS auto_action
|
||||||
FROM sys.master_files F
|
FROM sys.master_files F
|
||||||
JOIN sys.databases d ON d.[database_id] = f.[database_id]
|
JOIN sys.databases d ON d.[database_id] = f.[database_id]
|
||||||
JOIN [#dbs] [d2] ON d2.[database_name] = d.[name]
|
JOIN [#dbs] [d2] ON [d2].[database_name] = d.[name]
|
||||||
LEFT JOIN [#FileSize] fs ON fs.[FileName] = f.name AND fs.[dbName] = d.[name]
|
LEFT JOIN [#FileSize] fs ON [fs].[FileName] = f.name AND [fs].[dbName] = d.[name]
|
||||||
WHERE f.type_desc IN (
|
WHERE f.type_desc IN (
|
||||||
'ROWS' --mdf
|
'ROWS' --mdf
|
||||||
--,'LOG'
|
--,
|
||||||
|
--'LOG'
|
||||||
)
|
)
|
||||||
--AND f.[physical_name] LIKE 'f%'
|
--AND [F].[physical_name] LIKE 'd:%'
|
||||||
--AND d.[is_read_only] = 0
|
AND d.[is_read_only] = 0
|
||||||
|
AND [d].[source_database_id] IS NULL
|
||||||
--AND d.[is_auto_shrink_on] = 0
|
--AND d.[is_auto_shrink_on] = 0
|
||||||
--AND d.name='sl2007'
|
--AND d.name='sl2007'
|
||||||
AND d.name NOT IN (
|
AND d.name NOT IN (
|
||||||
@@ -96,6 +107,7 @@ AND d.name NOT IN (
|
|||||||
,'msdb'
|
,'msdb'
|
||||||
)
|
)
|
||||||
ORDER BY [d2].[row_size_mb] DESC, d.name DESC, f.name ASC ;
|
ORDER BY [d2].[row_size_mb] DESC, d.name DESC, f.name ASC ;
|
||||||
|
--ORDER BY [fileSpaceUsedPercent] ASC;
|
||||||
|
|
||||||
--free disk space
|
--free disk space
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
16
EXPLOIT - recent file grow events.sql
Normal file
16
EXPLOIT - recent file grow events.sql
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
DECLARE @path nvarchar(260) = (
|
||||||
|
SELECT REVERSE(SUBSTRING(REVERSE(path), CHARINDEX('\', REVERSE(path)), 260)) +'log.trc'
|
||||||
|
FROM sys.traces
|
||||||
|
WHERE is_default = 1)
|
||||||
|
|
||||||
|
SELECT gt.DatabaseID,
|
||||||
|
gt.FileName,
|
||||||
|
COUNT(*) AS NumberOfEvents,
|
||||||
|
CASE WHEN te.name LIKE'%Grow' THEN 1 ELSE 0 END AS is_growth_event
|
||||||
|
FROM sys.fn_trace_gettable(@path, DEFAULT) gt
|
||||||
|
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id
|
||||||
|
WHERE te.name in ('Data File Auto Grow','Log File Auto Grow','Data File Auto Shrink','Log File Auto Shrink')
|
||||||
|
GROUP BY gt.DatabaseID,
|
||||||
|
gt.FileName,
|
||||||
|
te.name
|
||||||
|
ORDER BY COUNT(1) DESC
|
||||||
43
HCI - cds restore columnstore reorganize.sql
Normal file
43
HCI - cds restore columnstore reorganize.sql
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
USE [sandbox]
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
OBJECT_NAME([OBJECT_ID]) AS [object_name],
|
||||||
|
[object_id],
|
||||||
|
[index_id],
|
||||||
|
[partition_number],
|
||||||
|
[row_group_id],
|
||||||
|
[delta_store_hobt_id],
|
||||||
|
[state],
|
||||||
|
[state_desc],
|
||||||
|
[total_rows],
|
||||||
|
[deleted_rows],
|
||||||
|
[size_in_bytes],
|
||||||
|
[size_in_bytes]/1024.0/1024.0 AS size_in_mb,
|
||||||
|
|
||||||
|
[trim_reason],
|
||||||
|
[trim_reason_desc],
|
||||||
|
[transition_to_compressed_state],
|
||||||
|
[transition_to_compressed_state_desc],
|
||||||
|
[has_vertipaq_optimization],
|
||||||
|
[generation],
|
||||||
|
[created_time],
|
||||||
|
[closed_time]
|
||||||
|
FROM sys.dm_db_column_store_row_group_physical_stats
|
||||||
|
WHERE 1=1
|
||||||
|
--AND object_id = OBJECT_ID('logcheck_products')
|
||||||
|
AND [state] IN (
|
||||||
|
1, --open
|
||||||
|
2 --closed
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
|
||||||
|
USE sandbox
|
||||||
|
|
||||||
|
ALTER INDEX ALL ON cds_log REORGANIZE;
|
||||||
|
ALTER INDEX ALL ON logcheck REORGANIZE;
|
||||||
|
ALTER INDEX ALL ON logcheck_products REORGANIZE;
|
||||||
|
ALTER INDEX ALL ON logcheck_interactions REORGANIZE;
|
||||||
|
ALTER INDEX ALL ON patient_risk REORGANIZE;
|
||||||
|
|
||||||
161
HCI - setup new dataProtectionKeys permissions.sql
Normal file
161
HCI - setup new dataProtectionKeys permissions.sql
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
/*
|
||||||
|
PharmaceuticalSpecialties_Superset
|
||||||
|
|
||||||
|
Wire the database Users to these new AD groups
|
||||||
|
|
||||||
|
DEV L-CI-AP-SQL-D-HCI-DataProtectionKeys_R and L-CI-AP-SQL-D-HCI-DataProtectionKeys_RW
|
||||||
|
INT L-CI-AP-SQL-I-HCI-DataProtectionKeys_R and L-CI-AP-SQL-I-HCI-DataProtectionKeys_RW
|
||||||
|
PROD L-CI-AP-SQL-P-HCI-DataProtectionKeys_R and L-CI-AP-SQL-P-HCI-DataProtectionKeys_RW
|
||||||
|
|
||||||
|
01.10.2025, TSC
|
||||||
|
*/
|
||||||
|
|
||||||
|
BEGIN TRANSACTION
|
||||||
|
|
||||||
|
SET XACT_ABORT ON;
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
DECLARE @q NVARCHAR(MAX)='';
|
||||||
|
DECLARE @db sysname='DataProtectionKeys';
|
||||||
|
DECLARE @env VARCHAR(111);
|
||||||
|
DECLARE @groups TABLE(env VARCHAR(111) NOT NULL, grp_name VARCHAR(111) NOT NULL);
|
||||||
|
SELECT @env = CASE
|
||||||
|
WHEN @@SERVERNAME='SWMDATASQLDEV01' THEN 'dev'
|
||||||
|
WHEN @@SERVERNAME='SWMDATASQLINT01' THEN 'int'
|
||||||
|
WHEN @@SERVERNAME='SWMDATASQLPRD01' THEN 'prod'
|
||||||
|
WHEN @@SERVERNAME='SWSQLMDQAS05' THEN 'prod'
|
||||||
|
ELSE 'unknown'
|
||||||
|
END;
|
||||||
|
DECLARE @tplLogins NVARCHAR(MAX)='
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM sys.server_principals
|
||||||
|
WHERE name = ''@grp@''
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
SET @sql =
|
||||||
|
N''CREATE LOGIN [@grp@] '' +
|
||||||
|
N''FROM WINDOWS '' +
|
||||||
|
N''WITH DEFAULT_DATABASE=[master];'';
|
||||||
|
EXEC (@sql);
|
||||||
|
|
||||||
|
PRINT ''created login [@grp@]'';
|
||||||
|
END
|
||||||
|
|
||||||
|
';
|
||||||
|
DECLARE @tplUser NVARCHAR(MAX)='
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM sys.database_principals
|
||||||
|
WHERE name = N''@grp@''
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
CREATE USER [@grp@]
|
||||||
|
FOR LOGIN [@grp@];
|
||||||
|
PRINT ''Added user [@grp@]'';
|
||||||
|
END
|
||||||
|
|
||||||
|
IF EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM sys.database_principals
|
||||||
|
WHERE name = N''@grp@''
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
GRANT EXECUTE TO [@grp@];
|
||||||
|
--PRINT ''Granted EXECUTE to [@grp@]'';
|
||||||
|
|
||||||
|
ALTER ROLE [db_datareader] ADD MEMBER [@grp@]
|
||||||
|
--PRINT ''Granted db_datareader to [@grp@]'';
|
||||||
|
|
||||||
|
PRINT ''Granted read and execute permissions to [@grp@]'';
|
||||||
|
IF ''@grp@'' like ''%[_]RW''
|
||||||
|
BEGIN
|
||||||
|
ALTER ROLE [db_datawriter] ADD MEMBER [@grp@];
|
||||||
|
PRINT ''Granted db_datawriter to [@grp@]'';
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
|
|
||||||
|
'
|
||||||
|
|
||||||
|
INSERT INTO @groups ([env],[grp_name])
|
||||||
|
VALUES('dev', 'CENTRALINFRA\L-CI-AP-SQL-D-HCI-DataProtectionKeys_R')
|
||||||
|
,('dev', 'CENTRALINFRA\L-CI-AP-SQL-D-HCI-DataProtectionKeys_RW')
|
||||||
|
,('int', 'CENTRALINFRA\L-CI-AP-SQL-I-HCI-DataProtectionKeys_R')
|
||||||
|
,('int', 'CENTRALINFRA\L-CI-AP-SQL-I-HCI-DataProtectionKeys_RW')
|
||||||
|
,('prod', 'CENTRALINFRA\L-CI-AP-SQL-P-HCI-DataProtectionKeys_R')
|
||||||
|
,('prod', 'CENTRALINFRA\L-CI-AP-SQL-P-HCI-DataProtectionKeys_RW')
|
||||||
|
|
||||||
|
;
|
||||||
|
SELECT @env
|
||||||
|
IF @env IN ('dev','int','prod')
|
||||||
|
BEGIN
|
||||||
|
SET @q='use master
|
||||||
|
go
|
||||||
|
BEGIN TRANSACTION
|
||||||
|
SET XACT_ABORT ON;
|
||||||
|
SET NOCOUNT ON;
|
||||||
|
|
||||||
|
IF NOT EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM sys.databases d
|
||||||
|
WHERE name='''+@db+'''
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
RAISERROR(''The target db %s does not exists (yet?)'',16,5,'''+@db+''');
|
||||||
|
RETURN
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE @sql nvarchar(MAX)='''';
|
||||||
|
';
|
||||||
|
|
||||||
|
--#region login
|
||||||
|
SELECT @q = @q + REPLACE(@tplLogins, '@grp@',g.[grp_name])
|
||||||
|
FROM @groups g
|
||||||
|
WHERE [g].[env] = @env
|
||||||
|
AND g.[grp_name] LIKE '%\%';
|
||||||
|
--#endregion login
|
||||||
|
|
||||||
|
--#region users
|
||||||
|
SET @q = @q +'
|
||||||
|
use '+@db+'
|
||||||
|
GO
|
||||||
|
';
|
||||||
|
|
||||||
|
SELECT @q = @q + REPLACE(@tplUser,'@grp@', g.[grp_name])
|
||||||
|
FROM @groups g
|
||||||
|
WHERE g.[env] = @env;
|
||||||
|
--#endregion users
|
||||||
|
|
||||||
|
SET @q = @q +'
|
||||||
|
ROLLBACK TRANSACTION
|
||||||
|
'
|
||||||
|
PRINT ''
|
||||||
|
|
||||||
|
--#region print whole dyn sql
|
||||||
|
DECLARE @String NVARCHAR(MAX) = @q
|
||||||
|
DECLARE @CurrentEnd BIGINT; /* track the length of the next substring */
|
||||||
|
DECLARE @offset tinyint; /*tracks the amount of offset needed */
|
||||||
|
set @string = replace( replace(@string, char(13) + char(10), char(10)) , char(13), char(10))
|
||||||
|
|
||||||
|
WHILE LEN(@String) > 1
|
||||||
|
BEGIN
|
||||||
|
IF CHARINDEX(CHAR(10), @String) between 1 AND 4000
|
||||||
|
BEGIN
|
||||||
|
SET @CurrentEnd = CHARINDEX(char(10), @String) -1
|
||||||
|
set @offset = 2
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
SET @CurrentEnd = 4000
|
||||||
|
set @offset = 1
|
||||||
|
END
|
||||||
|
PRINT SUBSTRING(@String, 1, @CurrentEnd)
|
||||||
|
set @string = SUBSTRING(@String, @CurrentEnd+@offset, LEN(@String))
|
||||||
|
END /*End While loop*/
|
||||||
|
--#endregion print whole dyn sql
|
||||||
|
END
|
||||||
|
|
||||||
|
ROLLBACK TRANSACTION
|
||||||
@@ -27,7 +27,7 @@ BEGIN
|
|||||||
SELECT TOP (@batch)
|
SELECT TOP (@batch)
|
||||||
[s].[DocumedisClinicalDecisionSupportLogData_PK]
|
[s].[DocumedisClinicalDecisionSupportLogData_PK]
|
||||||
FROM [dbo].[Documedis_ClinicalDecisionSupport_LogData] [s]
|
FROM [dbo].[Documedis_ClinicalDecisionSupport_LogData] [s]
|
||||||
WHERE [s].[LogDateTime] > @cutoff
|
WHERE [s].[LogDateTime] < @cutoff
|
||||||
AND EXISTS(
|
AND EXISTS(
|
||||||
SELECT 1
|
SELECT 1
|
||||||
FROM [archivedRowsJournal] [a]
|
FROM [archivedRowsJournal] [a]
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ BEGIN
|
|||||||
SELECT TOP (@batch)
|
SELECT TOP (@batch)
|
||||||
[s].[DocumedisSecurityLogId]
|
[s].[DocumedisSecurityLogId]
|
||||||
FROM [DocumedisSecurityLogs] [s]
|
FROM [DocumedisSecurityLogs] [s]
|
||||||
WHERE [s].[LogDateTime] > @cutoff
|
WHERE [s].[LogDateTime] < @cutoff
|
||||||
AND EXISTS(
|
AND EXISTS(
|
||||||
SELECT 1
|
SELECT 1
|
||||||
FROM [archivedRowsJournal] [j]
|
FROM [archivedRowsJournal] [j]
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ BEGIN
|
|||||||
SELECT TOP (@batch)
|
SELECT TOP (@batch)
|
||||||
[s].[DocumedisVaccinationCheckLogData_PK]
|
[s].[DocumedisVaccinationCheckLogData_PK]
|
||||||
FROM [dbo].[Documedis_VaccinationCheck_LogData] [s]
|
FROM [dbo].[Documedis_VaccinationCheck_LogData] [s]
|
||||||
WHERE [s].[LogDateTime] > @cutoff
|
WHERE [s].[LogDateTime] < @cutoff
|
||||||
AND EXISTS(
|
AND EXISTS(
|
||||||
SELECT 1
|
SELECT 1
|
||||||
FROM [archivedRowsJournal] [a]
|
FROM [archivedRowsJournal] [a]
|
||||||
|
|||||||
Reference in New Issue
Block a user