在SQL Server中我如何能得到所有的表名,字段名和业主的名单?
我已经这样做了,但我在哪里可以得到所有者的详细信息?
SELECT t.name AS tableName,
s.name SchemaName
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
在SQL Server中我如何能得到所有的表名,字段名和业主的名单?
我已经这样做了,但我在哪里可以得到所有者的详细信息?
SELECT t.name AS tableName,
s.name SchemaName
FROM sys.tables AS t
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id]
请注意,“TABLE_OWNER”是一样的“模式所有者”和“TABLE_TYPE”将确定如果该项目是一个表或视图。
希望这可以帮助!
--This will return all tables, table owners and table types for all database(s) that are NOT 'Offline'
--Offline database information will not appear
Declare @temp_table table(
DB_NAME varchar(max),
TABLE_OWNER varchar(max),
TABLE_NAME varchar(max),
TABLE_TYPE varchar(max),
REMARKS varchar(max)
)
INSERT INTO @temp_table (DB_NAME, TABLE_OWNER, TABLE_NAME, TABLE_TYPE,REMARKS)
EXECUTE master.sys.sp_MSforeachdb 'USE [?]; EXEC sp_tables'
SELECT *
FROM @temp_table
--Uncomment below if you are seaching for 1 database
--WHERE DB_NAME = '<Enter specific DB Name>'
--For all databases other than 'System Databases'
WHERE DB_NAME not in ('master','model','msdn','tempdb')
order by 1
你是否尝试过使用内置sp_tables
存储过程? 见http://msdn.microsoft.com/en-us/library/ms186250.aspx供使用。
我会加入这个作为一个评论,但我显然需要50声誉这样做。