В качестве дополнительного ответа sp_MSforeachtable
полезна недокументированная системная хранимая процедура .
CREATE TABLE #CountRows ( TableName nvarchar(260), NumRows int) ;
GO
EXEC sp_MSforeachtable 'insert into #CountRows select ''?'', count(*) from ?' ;
SELECT * FROM #CountRows WHERE NumRows = 0 ORDER BY TableName ;
DROP TABLE #CountRows ;
Применяются обычные предупреждения о недокументированных функциях.
Вы можете посмотреть исходный код процедуры в master, если вам интересно, или если вы хотите быть уверены, что у него нет неприятных побочных эффектов. Он использует динамический SQL для создания курсора, что плохо сказывается на производительности (cursor = slow!), Поэтому используйте эту процедуру только для одноразовой задачи.
Кроме того, sp_MSforeachtable
недоступно в базе данных Azure.