2012年5月25日 星期五
如何找出所有資料庫裡面所有資料表的筆數(SQL Server)
下面這段是網路上抄來的,的確是很好用,有時候是會派上用場的
來源 : http://www.dotblogs.com.tw/lolota/archive/2009/10/13/11041.aspx
做了一點點修改,可以清楚表示 dbname
DECLARE @SQL nvarchar(2000)
DECLARE @DBName nvarchar(200)
DECLARE @name VARCHAR(150) -- database name
use master
SET NOCOUNT ON
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Database Name : ' + @NAME
PRINT '--------------------------------'
SET @DBName= @name
SET @SQL = 'USE ' + @DBName + char(13)
+ N'select ''' + @DBName + ''' as DBName , substring(obj.name, 1, 50) as Table_Name,ind.rows as Number_of_Rows from sysobjects as obj inner join sysindexes as ind on obj.id = ind.id where ind.indid < 2 and obj.xtype like ''U'' order by obj.name';
EXEC sp_sqlexec @SQL
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor
另外 這些倒是還挺實用的↓
1.列出資料庫中所有資料表筆數
use dbName
EXEC sp_MSforeachtable 'select ''?'' as 資料表名稱, Count(*) as 資料總筆數 from ?'
2.列出資料庫中所有資料表大小
use dbName
EXEC sp_MSforeachtable 'EXEC sp_spaceused ''?'''
3.重建資料庫中所有資料表索引
use dbName
EXEC sp_MSforeachtable 'print ''?'' DBCC DBREINDEX (''?'', '' '', 80)'
4.關閉資料庫中所有資料表 Trigger
use dbName
EXEC sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
5.關閉資料庫中所有資料表 Constraint
use dbName
EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"
6.回收資料庫中所有資料表可變長度空間
use dbName
EXEC sp_MSforeachtable 'DBCC CLEANTABLE(0,''?'') WITH NO_INFOMSGS; ';
7.更新資料庫中所有資料表統計值
use dbName
EXEC sp_MSforeachtable 'UPDATE statistics ? WITH ALL'
8.清空資料庫中所有資料表資料
use dbName
EXEC sp_MSforeachtable 'TRUNCATE TABLE ?'
9.刪除資料庫中所有資料表資料
use dbName
EXEC sp_MSforeachtable 'delete from ?'
10.刪除資料庫中所有資料表
use dbName
EXEC sp_MSforeachtable 'drop table ?'
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言