• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベース容量を変数に取得したい)

データベース容量を変数に取得する方法

このQ&Aのポイント
  • SQL Server 2005 EXPRESSにてストアドを作成し、現在のデータベース容量を変数に取得する方法を教えてください。
  • sp_spaceusedを使用すると、データベースのサイズや割り当てられていないスペースを取得できますが、これをストアド内のローカル変数に代入する方法がわかりません。
  • どうすれば、作成したストアド内でデータベースの容量を取得し、ローカル変数に代入することができるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

sp_spaceusedの結果は変数にとることはできません。 2つ以上のセットを返すストアドプロシージャは結果をワークテーブルに受けることができないからです。 代わりにsp_spaceusedが何かやっているかを調べて、それを実装します。 DECLARE @DBSIZE numeric(15,2) SELECT @DBSIZE=CONVERT(decimal(15,2),sum(size))*8192/1048576 from dbo.sysfiles

wendy0303
質問者

お礼

早速の回答ありがとうございます。 今現在 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が何かやっているかが、理解出来そうな気がしてきました。 素早く、また、理解に繋がる回答、ありがとうございました。

関連するQ&A