如何在SQL Server中获取在不同表中重复的列。
如何在SQL Server中获取在不同表中重复的列。
这个问题已经在此处有答案了:
我有一个拥有大量数据表的数据库。我想要列出所有在多个表中出现的列名以及它们所在的表名。
我尝试了谷歌搜索,寻找任何可以解释如何实现我在问题部分描述的结果的合适文章。
没有代码片段。
没有错误信息。
admin 更改状态以发布 2023年5月22日
有很多结果和片段显示如何获取数据库中的所有列名。只需使用一个查询到sys.columns即可,例如:
select Name from sys.columns
在任何表格中返回多个出现次数的相同SQL查询也可以在此处使用,例如:
select Name,count(*) from sys.columns group by Name having count(*)>1
将返回出现多次的列名。
您可以通过使用COUNT()
和OVER
而不是连接来获取列和表名:
with t as ( select name, object_name(object_id) as TableName, count(*) over (partition by name) cnt from sys.columns ) select * from t where cnt >1