Copy/Paste "design" Microsoft SQL 服务器表的信息到 Excel
Copy/Paste "design" information of Micrsoft SQL Server tables into Excel
我是 SQL 的新手,所以我很抱歉提出一个对你们中的一些人来说可能微不足道的问题。
有什么“巧妙”的方法可以将 SQL table 的 paste/information(“设计”选项)复制到 Excel 中吗?
Example of table information
在示例中,我选择了一个特定的 table;我可以将三列中的普通 copy/paste 转换为 Excel,其他 table 依此类推。问题是我必须这样做数百 tables。我怎样才能使它自动化?谢谢!
您可以利用一些系统表来帮助构建此信息。但是你需要超过 3 列的数据。我将留给您来决定您希望如何显示所有这些信息。此查询将为您提供所有表和列及其可为空性和数据类型。
select TableName = t.name
, ColumnName = c.name
, DatatypeName = st.name
, MaxLength = case when st.name in ('nchar', 'nvarchar') then c.max_length / 2 else c.max_length end
, c.precision
, c.scale
, c.is_nullable
from sys.columns c
join sys.tables t on t.object_id = c.object_id
join sys.types st on st.user_type_id = c.user_type_id
order by t.name
, c.column_id
我是 SQL 的新手,所以我很抱歉提出一个对你们中的一些人来说可能微不足道的问题。 有什么“巧妙”的方法可以将 SQL table 的 paste/information(“设计”选项)复制到 Excel 中吗? Example of table information
在示例中,我选择了一个特定的 table;我可以将三列中的普通 copy/paste 转换为 Excel,其他 table 依此类推。问题是我必须这样做数百 tables。我怎样才能使它自动化?谢谢!
您可以利用一些系统表来帮助构建此信息。但是你需要超过 3 列的数据。我将留给您来决定您希望如何显示所有这些信息。此查询将为您提供所有表和列及其可为空性和数据类型。
select TableName = t.name
, ColumnName = c.name
, DatatypeName = st.name
, MaxLength = case when st.name in ('nchar', 'nvarchar') then c.max_length / 2 else c.max_length end
, c.precision
, c.scale
, c.is_nullable
from sys.columns c
join sys.tables t on t.object_id = c.object_id
join sys.types st on st.user_type_id = c.user_type_id
order by t.name
, c.column_id