1. 获取所有数据库名
方法1: Select Name FROM Master.dbo.SysDatabases order BY Name
问题:无法过滤掉系统库
方法2: select name from sys.databases where database_id > 4
2. 获取所有表名:
Select Name FROM SysObjects Where XType='U' order BY Name
--XType='U':表示所有用户表;
--XType='S':表示所有系统表;
SELECT name FROM sysobjects WHERE type = 'U' AND sysstat = '83'
注意:一般情况只需要type = 'U',但有时候会有系统表混在其中(不知道什么原因),加上后面一句后就能删除这些系统表了。
3. 在MS Sql Server中可以能过以下的方法查询出磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率:
1、查询各个磁盘分区的剩余空间:
Exec master.dbo.xp_fixeddrives
2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等)
select * from [数据库名].[dbo].[sysfiles]
转换文件大小单位为MB:
select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles
3、查询当前数据库的磁盘使用情况:
Exec sp_spaceused
4、查询数据库服务器各数据库日志文件的大小及利用率
DBCC SQLPERF(LOGSPACE)
4. 级联删除
delete A1 from A1, A2 where A1.对象ID=A2.ID and A2.版本ID = ?
浙公网安备 33010602011771号