sql-server - 如何获取在 SQL Server 内部数据库的不同表中重复的列
问题描述
我有一个包含大量表的数据库。从这些表中,我想列出出现在多个表中的所有列名及其表名。
我尝试谷歌搜索以找到任何合适的文章,可以解释如何实现我在问题部分中描述的结果。
没有代码片段
没有错误信息。
解决方案
有很多结果和片段显示了如何获取数据库中的所有列名。这是对sys.columns的单个查询,例如:
select Name
from sys.columns
在任何表中返回多次出现的相同 SQL 查询也可以在这里使用,例如:
select Name,count(*)
from sys.columns
group by Name
having count(*)>1
将返回多次出现的列名。
您可以使用COUNT()
with获取列名和表名,而无需加入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
推荐阅读
- c++ - 递归函数错误:“-var-create:无法创建变量对象”
- java - 如何编写测试用例?
- javascript - 在角度 AoT 编译器中导出变量
- python - 通过 boto3 担任 IAM 用户角色时访问被拒绝
- asp.net-mvc - 如果表单无效或为空,则禁用复选框,如果有效则启用
- ios - 在 UIScrollView 中显示多个 UIView 的小缩略图/镜像
- azure - 获取 API 范围策略 XML
- angularjs - 使用上下文访问嵌套 Angular foreach 循环中的变量
- vba - 键的集合返回值
- regex - 如何根据 Google 表格中的一列中的多个文本值查找并返回一个值