- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベース容量を変数に取得したい)
データベース容量を変数に取得する方法
このQ&Aのポイント
- SQL Server 2005 EXPRESSにてストアドを作成し、現在のデータベース容量を変数に取得する方法を教えてください。
- sp_spaceusedを使用すると、データベースのサイズや割り当てられていないスペースを取得できますが、これをストアド内のローカル変数に代入する方法がわかりません。
- どうすれば、作成したストアド内でデータベースの容量を取得し、ローカル変数に代入することができるのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
sp_spaceusedの結果は変数にとることはできません。 2つ以上のセットを返すストアドプロシージャは結果をワークテーブルに受けることができないからです。 代わりにsp_spaceusedが何かやっているかを調べて、それを実装します。 DECLARE @DBSIZE numeric(15,2) SELECT @DBSIZE=CONVERT(decimal(15,2),sum(size))*8192/1048576 from dbo.sysfiles
お礼
早速の回答ありがとうございます。 今現在 sp_spaceused 内を読んでおりましたが、 十分に理解出来ず苦し紛れなストアドを書いておりました。 >DECLARE @DBSIZE numeric(15,2) >SELECT @DBSIZE=CONVERT(decimal(15,2),sum(size))*8192/1048576 from dbo.sysfiles 教えていただきましたこの文を見てからですと、 sp_spaceused 115行目あたりからの select database_name = db_name(), database_size = ltrim(str((convert (dec (15,2),@dbsize)… 等、sp_spaceusedが何かやっているかが、理解出来そうな気がしてきました。 素早く、また、理解に繋がる回答、ありがとうございました。