【发布时间】:2023-03-31 01:15:01
【问题描述】:
我需要在 SQL 服务器上编写一个查询来获取特定表中的列列表,包括生成编号、其关联的数据类型(带长度)、如果它们为空(是,否则否)以及最后它的来源包括数据库和表名。
例如,从表[dbo].[DimProduct] 中查看AdventureWorksDW,我可以看到:
CREATE TABLE [dbo].[DimProduct]
(
[ProductKey] [INT] IDENTITY(1,1) NOT NULL,
[ProductAlternateKey] [NVARCHAR](25) NULL,
[ProductSubcategoryKey] [INT] NULL,
[WeightUnitMeasureCode] [NCHAR](3) NULL,
[SizeUnitMeasureCode] [NCHAR](3) NULL,
[EnglishProductName] [NVARCHAR](50) NOT NULL,
...
我想创建一个选择语句来为我提供以下结果:
Number Name Type Is Null Source
---------------------------------------------------------------------------------------------
1 ProductKey int No AdventureWorksDW.dbo.DimProduct
2 ProductAlternateKey nvarchar(25) Yes AdventureWorksDW.dbo.DimProduct
3 ProductSubcategoryKey int Yes AdventureWorksDW.dbo.DimProduct
… … … … …
【问题讨论】:
-
SQL Server 2012。我做到了,但是另一个查询变得复杂,因为它缺少源(数据库+表名)...
-
你可以运行
EXEC sp_describe_first_result_set N'SELECT * FROM dbo.DimProduct', NULL, 1;
标签: sql-server types sql-server-2012 null