Занимаясь подготовкой процедуры импорта данных из одной БД в другую, я, наверное, в 10-й раз написал скрипт, подсчитывающий количество строк во всех таблицах БД-источника. Немного подумал, и решил, что надо этот скрипт разместить где-то, где я точно смогу его найти, когда в нем снова возникнет потребность
DECLARE @tables TABLE ( id INT IDENTITY(1,1) NOT NULL, name SYSNAME NOT NULL )
DECLARE @id INT, @maxid INT
DECLARE @name SYSNAME
DECLARE @sql NVARCHAR(MAX)
INSERT INTO @tables ( name )
SELECT name FROM sysobjects WHERE xtype = ‘U’ ORDER BY name
SELECT @id = 1, @maxid = MAX(id) FROM @tables
SET @sql = N”
WHILE @id <= @maxid
BEGIN
SELECT @name = name FROM @tables WHERE id = @id
IF LEN(@sql) > 0
SET @sql = @sql + N’ UNION ALL’ + CHAR(13) + CHAR(10)
SET @sql = @sql + N’SELECT N”’ + @name + N”’, COUNT(1) FROM [' + @name + N']‘
SET @id = @id + 1
END
SET @sql =
N’SELECT [TableName], [NumberOfRows] FROM (‘ + CHAR(13) + CHAR(10) +
@sql + CHAR(13) + CHAR(10) +
N’) a ( [TableName], [NumberOfRows] )’ + CHAR(13) + CHAR(10) +
N’ORDER BY [TableName]‘
EXEC ( @sql )
P.S. А может быть он даже кому-то пригодиться – чем черт не шутит…
Recent Comments