Shadow76
7/3/2015 - 10:24 AM

Установка READ_COMMITTED_SNAPSHOT для БД контента

Установка READ_COMMITTED_SNAPSHOT для БД контента

DECLARE @RCSITables table (TableName varchar(255))

INSERT INTO @RCSITables (TableName)
VALUES
	('CONTENT_KU2'),
	('CONTENT_BU2'),
	('CONTENT_MB2'),
	('CONTENT_LX2'),
	('CONTENT_KS2'),
	('CONTENT_KB2'),
	('CONTENT_KV2'),
	('CONTENT_US'),
	('CONTENT_UV'),
	('CONTENT_FS2'),
	('Content_NPD_COMM'),
	('CONTENT_NPD_USS'),
	('SWMD_BS'),
	('SWMD_FS2'),
	('SWMD_KS2'),
	('SWMD_US')

DECLARE @tableName varchar(255)

DECLARE curRCSI CURSOR FOR 
SELECT TableName
FROM @RCSITables

OPEN curRCSI

FETCH NEXT FROM curRCSI 
INTO @tableName

WHILE @@FETCH_STATUS = 0
BEGIN
    
	DECLARE @query varchar(MAX)
	DECLARE @StartedOn datetime = GETDATE()

	SET @query = '
		ALTER DATABASE ' + @tableName + '
		SET OFFLINE WITH ROLLBACK IMMEDIATE;
		
		ALTER DATABASE ' + @tableName + '
		SET READ_COMMITTED_SNAPSHOT ON;
		
		ALTER DATABASE ' + @tableName + ' SET ONLINE;'
	
	EXEC(@query)

	PRINT @tableName + ': ' +CAST(DATEDIFF(SECOND, @StartedOn, GETDATE()) AS varchar(MAX)) + ' сек'

	FETCH NEXT FROM curRCSI 
	INTO @tableName

END 
CLOSE curRCSI;
DEALLOCATE curRCSI;