MSSQL在知道列名的情况下查询在哪个一数据表里
作者:路由通
|

发布时间: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\';

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=“列名”
方法一:使用
方法二:通过
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_SCHEMA
和DATA_TYPE
。
方法二:通过 sys.columns
和 sys.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.tables
和sys.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),可使用 sysobjects
和 syscolumns
:
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;
用于筛选用户表。
注意事项
- 列名大小写:MSSQL 默认不区分大小写,但若数据库设置为区分大小写,需确保列名匹配。
- 限定数据库:若需指定数据库,可在查询中限定
TABLE_SCHEMA
或使用全限定名(如DatabaseName.INFORMATION_SCHEMA.COLUMNS
)。 - 权限要求:需对系统视图(如
INFORMATION_SCHEMA
、sys.tables
)有查询权限。
相关文章
文末提供TXT文本下载,打开文件 ,工具---宏----录制新宏---输入名字如:toro 停止录制(这样得到一个空宏) 工具---宏----宏,选aa,点编辑按钮 删除窗口中的所有字符(只有几个),替换为下面的内容:(你复制吧)如果以上方法无法解决,可能需要接受数据不可编辑的现实,或尝试回忆密码组合(如常用数字、日期等)。
2018-04-09 18:43:09

这个方法支持 华为HG8245C 华为HG8120C 华为e8c 上海贝尔 I-240W-Q ZXHN F460 贝尔RG200o-ca ZXA10 F660 中兴 F420
2015-05-26 22:03:19

魔豆路由器【2015年01月15号】发布OpenWrt_开发版ROM推送公告,16日作者更新此新系统,并未发现有什么新的变化,依然不能安装迅雷离线下载。魔豆路由器官方花时间抛弃原有的系统,重做新系统个...
2015-01-17 16:26:13

1.有线宽带网线插入无线路由WAN口,然后用一根网线从LAN口与你的笔记本(或台式机)直连。
303人看过
2015-01-12 12:31:10

为什么爱情不能像路由器设置VLAN一样把不同的“IP”的人绑在一起。
为什么周围的事物不能像路由器创建ACL那样随心所欲的控制。
为什么相爱的人远在天涯却不能像路由器做VPN一样,拉到近在...
2015-01-09 13:07:06

热门推荐