在sqlserver,簡單的組合sp_spaceused和sp_msforeachtable這兩個儲存過程,可以方便的統計出使用者
資料表的大小,包括記錄總數和空間占用情況,非常實用,在sqlserver2k和sqlserver2005中都測試通過。
/*1. exec sp_spaceused '表名' (sql統計資料,大量事務操作後可能不准)
2. exec sp_spaceused '表名', true (更新表的空間大小,準確的表空大小,但可能會花些統計時間)
3. exec sp_spaceused (資料庫大小查詢)
4. exec sp_msforeachtable "exec sp_spaceused '?'" (所有使用者表空間錶小,sql統計資料,,大量事務操作後可能不准)
5. exec sp_msforeachtable "exec sp_spaceused '?',true" (所有使用者表空間錶小,大資料庫慎用)
*/create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20))
exec sp_msforeachtable "insert into #t exec sp_spaceused '?'"
select * from #t
drop table #t
另外還有sp_msforeachdb可以遍歷所有資料庫,使用方法詳見sql幫助。
declare @s as nvarchar(100)
set @s=''
print @s+',' 返回 ,
set @s=null
print @s+',' 返回 null,即什麼都沒有
exec sp_changeobjectowner '要改的表名/儲存過程名','dbo'
sql常用語句
use myoa select from delete from department where departmentid 1 insert department departmentid,departmentname values 1,技術部 update department set depa...
sql常用語句
第一種 行列互換思想,外層group by,使用case when then 我有乙個表,有兩個字段 收費專案 唯一值 收費金額。我想用sql按收費專案不同生成不同的字段,對應值是金額。如 房租 100 水電費 50 雜費 50 生成後的格式是 房租 水電費 雜費 100 50 50 請問,如何寫這...
SQL常用語句
建立資料庫 create database name 檢視資料庫建立資訊 show create database name 建立資料庫排序規則 create database name character utf8 collate mou 刪除資料庫 drop database name 檢視當前...