
برای به دست آوردن لیست اسامی همه جداول موجود در سطح یک بانک اطلاعاتی می تونید از این کوئری استفاده کنید:
USE [master] /*اسم بانک اطلاعاتی*/ GO SELECT b.[name] AS SchemaName, a.[name] AS TableName FROM sys.tables a INNER JOIN sys.schemas b ON a.schema_id = b.schema_id WHERE [type] = 'U' AND DB_ID() > 4 /*شرط جداول غیر سیستمی*/
حالا برای به دست آوردن لیست اسامی همه جداول موجود در سطح یک Instance می تونید از این کوئری استفاده کنید:
USE [master] GO IF OBJECT_ID('tempdb..#Tables', 'U') IS NOT NULL DROP TABLE #Tables CREATE TABLE #Tables (DBName NVARCHAR(64), SchemaName NVARCHAR(256), TableName NVARCHAR(256)) INSERT INTO #Tables EXEC sp_MSforeachdb ' USE [?] DECLARE @dbname NVARCHAR(128) SET @dbname = DB_NAME(DB_ID()) SELECT @dbname AS DBName,b.name AS SchemaName,a.Name AS TableName FROM sys.tables a INNER JOIN sys.schemas b on a.schema_id = b.schema_id WHERE [type] = ''U'' AND DB_ID() > 4 /*شرط جداول غیر سیستمی*/ ' SELECT DBName,SchemaName,TableName FROM #Tables ORDER BY DBName,SchemaName,TableName