sql-server - 列出 SQL Server 数据库中的表名、所有者、架构和列

标签 sql-server schema owner

在 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”与“SCHEMA Owner”相同,“TABLE_TYPE”将标识该项目是表还是 View 。

希望这对您有所帮助!

--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

关于sql-server - 列出 SQL Server 数据库中的表名、所有者、架构和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25156403/

相关文章:

winapi - 如何使用其句柄更改窗口所有者

sql - 如何摆脱最后的记录空值

sql - 多次更新替换以使代码看起来正确

javascript - 如何使用 Jquery 在前端使用新记录验证现有记录

xml - 如何从 XSD 模式生成一组测试 XML 数据文件?

linux - 检查运行控制脚本的所有者

SQL Server 找不到存储过程 'show'

MySql,有没有办法在不丢失数据的情况下将Integer字段转换为Varchar?

c# - 检索 SQL Server 中表的 DataTable 信息

objective-c - 是否可以从实例化类中调用方法?