首页 > 数据库 >sqlserver 查询数据表

sqlserver 查询数据表

时间:2024-10-10 16:10:46浏览次数:8  
标签:架构 name sqlserver 查询 数据表 JOIN id schema

1. 如何获取所有架构及其包含的数据表名称

 

SELECT   
    s.name AS 架构名称,  
    t.name AS 数据表名称  
FROM   
    sys.schemas s  
INNER JOIN   
    sys.tables t ON s.schema_id = t.schema_id  
ORDER BY   
    s.name, t.name;

 

在这个查询中:

  • sys.schemas 视图包含数据库中所有架构的信息。s.name 字段表示架构的名称。
  • sys.tables 视图包含数据库中所有用户表的信息。t.name 字段表示表的名称。
  • s.schema_id = t.schema_id 条件用于将架构与其包含的表关联起来。
  • ORDER BY s.name, t.name 子句用于按架构名称和表名称对结果进行排序。

执行这个查询后,你将得到一个结果集,其中包含所有架构及其包含的数据表的名称。每个架构下的表将按表名称排序列出。

 

 

2. 查询数据表的数据字典包含架构

SELECT   
    (CASE WHEN a.colorder = 1 THEN schema_name.name + '.' + d.name ELSE '' END) AS 表名,  
    a.colorder AS 字段序号,  
    a.name AS 字段名,  
    (CASE WHEN COLUMNPROPERTY(a.id, a.name, 'IsIdentity') = 1 THEN '√' ELSE '' END) AS 标识,  
    (CASE WHEN EXISTS (  
        SELECT 1  
        FROM sysobjects so  
        INNER JOIN sysindexes si ON so.id = si.id  
        INNER JOIN sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid  
        WHERE so.id = a.id  
          AND so.xtype = 'U'  
          AND sik.colid = a.colid  
          AND EXISTS (  
              SELECT 1  
              FROM sysobjects pk  
              WHERE pk.parent_obj = si.id  
                AND pk.xtype = 'PK'  
          )  
    ) THEN '√' ELSE '' END) AS 主键,  
    b.name AS 类型,  
    a.length AS 占用字节数,  
    COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 长度,  
    ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数,  
    (CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END) AS 允许空,  
    ISNULL(e.text, '') AS 默认值,  
    ISNULL(g.[value], '') AS 字段说明,  
    schema_name.name AS 架构名  
FROM   
    syscolumns a  
    LEFT JOIN systypes b ON a.xtype = b.xusertype  
    INNER JOIN sysobjects d ON a.id = d.id AND d.xtype = 'U' AND d.name <> 'dtproperties'  
    INNER JOIN sys.schemas schema_name ON d.uid = schema_name.schema_id  -- 加入架构信息  
    LEFT JOIN syscomments e ON a.cdefault = e.id  
    LEFT JOIN sys.extended_properties g ON a.id = g.major_id AND a.colid = g.minor_id  
ORDER BY   
    schema_name.name,  -- 首先按架构排序  
    d.name,   
    a.id,   
    a.colorder;

  

 

翻译

搜索

复制

标签:架构,name,sqlserver,查询,数据表,JOIN,id,schema
From: https://www.cnblogs.com/qize/p/18456580

相关文章

  • [问题记录]SQLserver数据库是否可以新建多个.mdf文件?
    结论:1.可以,但只有第一个(.mdf)为当前数据库主文件。2.当有多个(.mdf)文件时,语句不会出现错误,但不符合命名约定,即命名约定不正确。3.数据库扩展名可以任意,官方文档中推荐主数据文件使用(.mdf),辅数据文件使用(.ndf),但如果使用例如:(.abc)作为文件后缀名,也是正确的。(具体官方文件截......
  • SQL Server 基础查询语句
    摘要在SQLServer中,查询语句是数据库管理员和开发人员最常用的工具之一,用于从数据库中提取、筛选和排序数据。以下是一些SQLServer查询语句的详细说明和示例:1、SELECT语句:这是最基本的查询语句,用于从一个或多个表中选择数据。例如,SELECT*FROMtable_name;将返回表中......
  • 一个免费的 Whois 信息查询接口
    前端查询页面:https://www.librespeed.cn/whoisApi接口:http://whois.librespeed.cn/api?domain=baidu.com {"id":62,"name":"qq.com","owner":"深圳市腾讯计算机系统有限公司","registrar":"MarkMon......
  • 查询网站后台登录地址
    查询网站后台登录地址通常涉及对网站结构的理解以及一些技术手段的应用。以下是一些可能的方法:直接访问常见路径:许多网站使用标准的后台路径,如 /admin、/administrator、/wp-admin(WordPress)、/login、/management 等。你可以尝试直接在网站域名后面加上这些路径看是否能够访......
  • sqlserver建立与Oracle的链接服务器
    1.下载轻量级的ODAC安装包https://www.oracle.com/database/technologies/odac-downloads.html2.解压ODAC112030Xcopy_x64.zip(我解压到了C盘下):  3.在命令行界面进入解压文件夹后运行“install.batoledbc:\oracle odac”安装:4.在系统环境变量中,为Path添加“C:\ora......
  • 一个查询IP地理信息和CDN提供商的离线终端工具
    一个查询IP地理信息和CDN提供商的离线终端工具Nali功能支持多种数据库纯真IPv4离线数据库ZXIPv6离线数据库Geoip2城市数据库(可选)IPIP数据库(可选)ip2region数据库(可选)DB-IP数据库(可选)IP2LocationDB3LITE数据库(可选)CDN服务提供商查询支持......
  • 【专题】人工智能AI算力高质量发展评估体系报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=37828在当今数字化时代,算力已成为推动经济发展和科技创新的关键力量。全球算力规模持续稳步扩张,尤其是智能算力的高速增长态势引人瞩目。我国“东数西算”工程凸显出东部算力需求大而西部相对较小的特点,同时各省份算力发展水平与经济规模紧密相关。......
  • Python操作SQLServer数据库增删改查
    #coding:utf-8importpymssqldeffn_query(cursor):#查询sql='SELECT*fromTest'cursor.execute(sql)row=cursor.fetchone()whilerow:print(row)row=cursor.fetchone()deffn_insert(cursor):#......
  • 大数据量下查询分页
    使用SQL实现分页批处理,可以按照如下步骤进行:首先将数据按照主键排序,然后调用窗口函数 row_number() 为每一行数据生成行号,接着调用聚合函数按照设置好的页面大小对行号进行分组,最终计算出每页的最小值和最大值。SELECTfloor((t.row_num-1)/1000)+1ASpage_num......
  • 查询计算移出数据库用 Java 太慢咋办
    很多现代应用会把数据计算和处理任务从数据库移出来采用Java实现,这样能获得架构上的好处,而且Java有完善过程处理能力,应对日益复杂的业务逻辑比SQL更得心应手(虽然代码不短)。不过,我们常常会发现,这些Java代码计算和处理数据的性能不如人意,赶不上数据库里的SQL。按说,作为......