のえら

技術備忘とかメモとか.間違いはつっこんでいただきたい所存.

SQLServerでDBのプロパティを取得したい

SQL Server で各DBのプロパティを取得する必要があったんだけども、それぞれプロパティを開いてキャプチャ撮って、ってするのが面倒になってきたのでクエリで何とか取得できないか調査。

あったね。
プロパティの取得はこれを使う。
Use T-SQL to View Database Information

で、一回一回USEでDB切り替えて操作するのも面倒だったので、eachくらいあるだろと思ってぐぐってみた。
sql server - How to run the same query on all the databases on an instance? - Stack Overflow

sp_MSForEachDB
こんな便利なプロシージャがあるのか!

EXECUTE sp_MSForEachDB
'sp_helpdb ?;'

とか

EXECUTE sp_MSForEachDB
'USE ?;
SELECT DB_NAME()AS DBName;
'sp_helpdb ?;'

とか

EXECUTE sp_MSForEachDB
'USE ?;
SELECT DB_NAME()AS DBName;
SELECT * FROM dbo.sysfiles'

で取得できるよ、便利!
2000でも使えたのでよかった。