sync
This commit is contained in:
58
DELPHIX - count tables per schemas.sql
Normal file
58
DELPHIX - count tables per schemas.sql
Normal file
@@ -0,0 +1,58 @@
|
||||
USE master;
|
||||
|
||||
IF OBJECT_ID('tempdb..#dbs')IS NOT NULL BEGIN;
|
||||
DROP TABLE #dbs;
|
||||
END;
|
||||
|
||||
SELECT [db].[name]
|
||||
INTO #dbs
|
||||
FROM sys.databases db
|
||||
WHERE [db].[name] NOT IN ( 'master', 'msdb', 'tempdb', 'distribution', 'model', 'symbiose', 'arizonaCash', 'activerob', 'SSISDB' );
|
||||
|
||||
IF OBJECT_ID('tempdb..#TblCountBySchema')IS NOT NULL BEGIN;
|
||||
DROP TABLE #TblCountBySchema;
|
||||
END;
|
||||
|
||||
CREATE TABLE #TblCountBySchema(
|
||||
[db_name] varchar(255) NOT NULL,
|
||||
[schema_name] varchar(255) NOT NULL,
|
||||
[tables_count] int NOT NULL
|
||||
|
||||
,CONSTRAINT pk_tblCountBySchema PRIMARY KEY ([db_name], [schema_name])
|
||||
)
|
||||
|
||||
DECLARE @tpl VARCHAR(MAX)='
|
||||
use @db@
|
||||
|
||||
INSERT INTO #TblCountBySchema([db_name], [schema_name], [tables_count])
|
||||
SELECT
|
||||
''@db@'' as [db_name],
|
||||
[t].[TABLE_SCHEMA] as [schema_name],
|
||||
COUNT(1) AS table_count
|
||||
FROM [INFORMATION_SCHEMA].[TABLES] t
|
||||
GROUP BY [t].[TABLE_SCHEMA];
|
||||
'
|
||||
|
||||
/* declare variables */
|
||||
DECLARE @dbName VARCHAR(255)
|
||||
|
||||
DECLARE csr_db CURSOR FAST_FORWARD READ_ONLY FOR SELECT name FROM [#dbs]
|
||||
|
||||
OPEN csr_db
|
||||
|
||||
FETCH NEXT FROM csr_db INTO @dbName
|
||||
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
DECLARE @stmt NVARCHAR(MAX) = REPLACE(@tpl, '@db@', @dbName);
|
||||
PRINT @stmt;
|
||||
EXEC sp_executesql @stmt, N'';
|
||||
|
||||
FETCH NEXT FROM csr_db INTO @dbName
|
||||
END
|
||||
|
||||
CLOSE csr_db
|
||||
DEALLOCATE csr_db
|
||||
|
||||
SELECT *
|
||||
FROM [#TblCountBySchema]
|
||||
Reference in New Issue
Block a user