How to Exclude Read_Only Databases Using sp_MSforeachdb

I will explain how you can use sp_MSforeachdb stored procedure against READ_WRITE database only.

There are numerous articles on the web about excluding databases using database id or name. Recently I needed a script to run against databases that are part of Always On Availability Groups and in READ_WRITE status. I used the ‘Updateability’ properties of DATABASEPROPERTYEX function.

Here is how I implemented this.

SET NOCOUNT ON

EXEC sp_MSForEachDb '
USE [?]
IF ''?'' NOT IN (''master'', ''model'', ''msdb'', ''tempdb'', ''Distribution'') 
IF ((SELECT DATABASEPROPERTYEX(''?'', ''Updateability''))=''read_write''  )
BEGIN
.....
.....
END
'

I would like to know if you implemented same functionality using other techniques

FacebookTwitterGoogle+Share