[ SQL ] 一次修改所有的 User Databases 的 PAGE_VERIFY 為 CHECKSUM
What it is: 一次修改所有的 User Databases 的 PAGE_VERIFY 為 CHECKSUM
Why it is important: 當針對 PAGE_VERIFY 資料庫選項啟用 CHECKSUM 時,SQL Server Database Engine 會針對整頁的內容計算總和檢查碼,並在將頁面寫入磁碟時,於頁首中儲存值。 從磁碟讀取頁面時,會重新計算總和檢查碼,並與頁首所儲存的總和檢查碼值作比較。 如此有助於提供高層級的資料檔完整性。此設定為建議值。
RESOLUTION:
DECLARE @DBName varchar (50), @msg varchar (60), @sql varchar(60)
DECLARE GetDBNames CURSOR
FOR
SELECT name FROM sys.databases WHERE page_verify_option < 2 AND database_id > 4 AND is_read_only = 0
OPEN GetDBNames
FETCH NEXT FROM GetDBNames INTO @DBName
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT ' '
SELECT @msg = '----- Change ' + UPPER(RTRIM(@DBName)) + ' -----'
PRINT @msg
SET @sql='ALTER Database ' + @DBName + ' SET PAGE_VERIFY CHECKSUM'
PRINT 'SQL Statement is ' + @sql
EXEC (@sql)
PRINT 'PAGE_VERIFY changed to CHECKSUM for database = ' + @DBName
FETCH NEXT FROM GetDBNames INTO @DBName
END
CLOSE GetDBNames
DEALLOCATE GetDBNames
GO
Enjoy.