Environment:
1. SQL Server 2008
Background:
I need a script which would change isolation level to SNAPSHOT on current database. I tried to use CURRENT to make it work without much success. Instead used DB_NAME() built-in function to get the current database name and executed alter command as run time query.
Script snippet:
DECLARE @dbName VARCHAR(100) = '';
SELECT @dbName=DB_NAME();
IF ISNULL(@dbName, '') <> ''
BEGIN
DECLARE @cmd NVARCHAR(100) = 'ALTER DATABASE '+@dbName+' SET ALLOW_SNAPSHOT_ISOLATION ON';
EXECUTE sp_executesql @cmd;
END;
GO
Helpful commands:
To enable:
ALTER DATABASE ABC SET ALLOW_SNAPSHOT_ISOLATION ON;
To disable:
ALTER DATABASE ABC SET ALLOW_SNAPSHOT_ISOLATION OFF;
How to check database isolation settings:
SELECT name
, s.snapshot_isolation_state
, snapshot_isolation_state_desc
, is_read_committed_snapshot_on
, recovery_model
, recovery_model_desc
, collation_name
FROM sys.databases s
1. SQL Server 2008
Background:
I need a script which would change isolation level to SNAPSHOT on current database. I tried to use CURRENT to make it work without much success. Instead used DB_NAME() built-in function to get the current database name and executed alter command as run time query.
Script snippet:
DECLARE @dbName VARCHAR(100) = '';
SELECT @dbName=DB_NAME();
IF ISNULL(@dbName, '') <> ''
BEGIN
DECLARE @cmd NVARCHAR(100) = 'ALTER DATABASE '+@dbName+' SET ALLOW_SNAPSHOT_ISOLATION ON';
EXECUTE sp_executesql @cmd;
END;
GO
Helpful commands:
To enable:
ALTER DATABASE ABC SET ALLOW_SNAPSHOT_ISOLATION ON;
To disable:
ALTER DATABASE ABC SET ALLOW_SNAPSHOT_ISOLATION OFF;
How to check database isolation settings:
SELECT name
, s.snapshot_isolation_state
, snapshot_isolation_state_desc
, is_read_committed_snapshot_on
, recovery_model
, recovery_model_desc
, collation_name
FROM sys.databases s
No comments:
Post a Comment