400-680-8581
欢迎访问:路由通
中国IT知识门户
位置:路由通 > 资讯中心 > 零散代码 > 文章详情

MSSQL在知道列名的情况下查询在哪个一数据表里

作者:路由通
|
784人看过
发布时间:2018-11-08 13:32:03
标签:
在 MSSQL 中,已知列名需查找其所属数据表,可通过以下方法实现:方法一:使用 INFORMATION_SCHEMA.COLUMNS 系统视图‌,方法二:通过 sys.columns 和 sys.tables 系统表‌,SELECT t.name AS TableName FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id WHERE c.name = \'YourColumnName\';
MSSQL在知道列名的情况下查询在哪个一数据表里
select tab.name
from syscolumns as col
inner join sysobjects as tab on col.id=tab.id
where col.name=&39;bm&39;
查询列名在哪一个表col.name=“列名”

在 MSSQL 中,已知列名需查找其所属数据表,可通过以下方法实现:



方法一:使用 INFORMATION_SCHEMA.COLUMNS 系统视图


此方法为标准 SQL 实现,适用于所有兼容 SQL 标准的数据库(包括 MSSQL),语法如下:


SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = &39;YourColumnName&39;;


  • 说明‌:替换 YourColumnName 为目标列名,结果将返回包含该列的所有表名

  • 扩展‌:若需同时获取数据库名及列数据类型,可添加字段 TABLE_SCHEMADATA_TYPE




方法二:通过 sys.columnssys.tables 系统表


此方法基于 MSSQL 特有的系统视图,可获取更底层信息:


SELECT t.name AS TableName FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id WHERE c.name = &39;YourColumnName&39;;


  • 说明‌:通过关联系统表 sys.tablessys.columns,精准定位列所属表

  • 详细信息‌:若需列的数据类型或架构名,可扩展查询字段:


    SELECT t.name AS TableName, c.name AS ColumnName, ty.name AS DataType FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id JOIN sys.types ty ON c.user_type_id = ty.user_type_id WHERE c.name = &39;YourColumnName&39;; :ml-citationref="3" data="citationList"




方法三:兼容旧版本 MSSQL 的查询方式


针对早期版本(如 SQL Server 2000),可使用 sysobjectssyscolumns


SELECT OBJECT_NAME(id) AS TableName FROM syscolumns WHERE name = &39;YourColumnName&39; AND id IN (SELECT id FROM sysobjects WHERE xtype = &39;U&39;);


  • 说明‌:sysobjects.xtype = &39;U&39; 用于筛选用户表




注意事项



  1. 列名大小写‌:MSSQL 默认不区分大小写,但若数据库设置为区分大小写,需确保列名匹配

  2. 限定数据库‌:若需指定数据库,可在查询中限定 TABLE_SCHEMA 或使用全限定名(如 DatabaseName.INFORMATION_SCHEMA.COLUMNS

  3. 权限要求‌:需对系统视图(如 INFORMATION_SCHEMAsys.tables)有查询权限

相关文章
EXCEL工作表保护密码忘记了,如何撤消工作表保护?
文末提供TXT文本下载,打开文件 ,工具---宏----录制新宏---输入名字如:toro 停止录制(这样得到一个空宏) 工具---宏----宏,选aa,点编辑按钮 删除窗口中的所有字符(只有几个),替换为下面的内容:(你复制吧)如果以上方法无法解决,可能需要接受数据不可编辑的现实,或尝试回忆密码组合(如常用数字、日期等)。
2018-04-09 18:43:09
692人看过
最简单的方法知道光猫的超级密码
这个方法支持 华为HG8245C 华为HG8120C  华为e8c 上海贝尔 I-240W-Q ZXHN F460 贝尔RG200o-ca ZXA10 F660 中兴 F420
2015-05-26 22:03:19
740人看过
无线路由器怎么设置简短教程
1.有线宽带网线插入无线路由WAN口,然后用一根网线从LAN口与你的笔记本(或台式机)直连。 
2015-01-12 12:31:10
637人看过
路由器爱情

为什么爱情不能像路由器设置VLAN一样把不同的“IP”的人绑在一起。

为什么周围的事物不能像路由器创建ACL那样随心所欲的控制。

为什么相爱的人远在天涯却不能像路由器做VPN一样,拉到近在...

2015-01-09 13:07:06
463人看过
磊科NR235W/236W固件改版机免拆机更新新版CFE

慎重提醒各位,如果机器稳定运行不需要老是升级,特别是刷CFE,刷机是存在刷坏的风险的,后果自己要衡量清楚后再进行下面

2015-01-09 12:37:00
871人看过
利用批处理检测端口,出现异常重启服务器
最近服务器不定时出现连接mysql数据库错误,造成路由通http://nctoro.com不正常(连接数据库失败,请检查数据库信息。错误编号:2002)重启ISS问题依然存在,重启mysql服务问题依然未解决。利用Netstat -n -a 查询是否有程序占用3306端口,发现没有任何程序占用。重启服务器后,网站就能正常访问,过段时间问题又会出现。
2015-01-05 08:48:51
771人看过