Sql 获取仅在一个特定表中引用的所有列名

Sql 获取仅在一个特定表中引用的所有列名,sql,sql-server,Sql,Sql Server,我的数据库中有1000多个表、SP和视图 如何获得整个数据库中仅在一个特定表中引用的所有“列名”的列表;而不是在我数据库中的任何其他表、SP或视图中 i、 e.我有数据库A,其中有表:B、C、D;观点:E、F、G;表B有500列;例如,在其他视图或SP中引用了250列,但在其他任何地方都没有使用250列。如何获取仅在数据库B中使用而不在其他任何地方使用的列名称列表?这是一个有趣的问题。这将显示所有表中的所有字段 SELECT T.name AS Table_Name , C.na

我的数据库中有1000多个表、SP和视图

如何获得整个数据库中仅在一个特定表中引用的所有“列名”的列表;而不是在我数据库中的任何其他表、SP或视图中


i、 e.我有数据库A,其中有表:B、C、D;观点:E、F、G;表B有500列;例如,在其他视图或SP中引用了250列,但在其他任何地方都没有使用250列。如何获取仅在数据库B中使用而不在其他任何地方使用的列名称列表?

这是一个有趣的问题。这将显示所有表中的所有字段

 SELECT T.name AS Table_Name ,
       C.name AS Column_Name ,
       P.name AS Data_Type ,
       P.max_length AS Size ,
       CAST(P.precision AS VARCHAR) + '/' + CAST(P.scale AS VARCHAR) AS Precision_Scale
FROM   sys.objects AS T
       JOIN sys.columns AS C ON T.object_id = C.object_id
       JOIN sys.types AS P ON C.system_type_id = P.system_type_id
WHERE  T.type_desc = 'USER_TABLE';
这将显示特定视图中的所有字段名

SELECT *
FROM sys.views

SELECT * 
FROM sys.columns
WHERE object_id = OBJECT_ID('dbo.View_1')

你能从这个开始吗?如果您有其他问题,请发回。

您所说的“参考”是什么意思?即,我有数据库A,其中有表:B、C、D;观点:E、F、G;表B有500列;例如,在其他视图或SP中引用了250列,但在其他任何地方都没有使用250列。如何获取仅在数据库B中使用而不在其他任何地方使用的列名称列表?使用SSMS并将数据库向下扩展到键。您将在那里看到PK/FK的内容,如果您熟悉Python,那么使用SQLACodeGen创建可用于SQLAlchemy的模式代码相对容易。我发现这是最简单的方法之一。另外,如果您使用许多数据库供应商,那么带有EclipseERDS的DBeaver也很好。