查询表中所有字段的最大长度(大数据情况)

DECLARE @tableName NVARCHAR(50)= ‘home‘;

IF OBJECT_ID(N‘TableColumnMaxLen‘, N‘U‘) IS  NULL
    BEGIN
        CREATE TABLE TableColumnMaxLen
            (
              TableName NVARCHAR(50) NOT NULL ,
              ColumnName NVARCHAR(50) NOT NULL ,
              ColumnMaxLen INT NOT NULL ,
              PRIMARY KEY ( TableName, ColumnName )
            );
    END;
DECLARE @columnName NVARCHAR(50);
DECLARE @columnMaxLen INT;
DECLARE @sql NVARCHAR(MAX);
DECLARE @initState INT= -1;
DECLARE @searchingState INT= -2;
IF NOT EXISTS ( SELECT  1
                FROM    dbo.TableColumnMaxLen
                WHERE   TableName = @tableName )
    BEGIN
        INSERT  TableColumnMaxLen
                SELECT  @tableName ,
                        COLUMN_NAME ,
                        @initState
                FROM    INFORMATION_SCHEMA.COLUMNS
                WHERE   TABLE_NAME = @tableName;
    END;

WHILE 1 = 1
    BEGIN
        SET @columnName = ( SELECT TOP 1
                                    ColumnName
                            FROM    TableColumnMaxLen
                            WHERE   TableName = @tableName
                                    AND ColumnMaxLen = @initState
                          );
        IF @columnName IS NULL
            BREAK;

        UPDATE  TableColumnMaxLen
        SET     ColumnMaxLen = @searchingState
        WHERE   TableName = @tableName
                AND ColumnName = @columnName;

        SET @sql = ‘SELECT @columnMaxLen=ISNULL(MAX(LEN([‘ + @columnName
            + ‘])), 0) FROM ‘ + @tableName;
      --  PRINT @sql;
        EXEC sp_executesql @sql, N‘@columnMaxLen int out‘, @columnMaxLen OUT;

        UPDATE  TableColumnMaxLen
        SET     ColumnMaxLen = @columnMaxLen
        WHERE   TableName = @tableName
                AND ColumnName = @columnName;
    END;

SELECT  *
FROM    TableColumnMaxLen
WHERE   TableName = @tableName;
时间: 2024-10-13 10:17:42

查询表中所有字段的最大长度(大数据情况)的相关文章

查询表中所有字段的最大长度

DECLARE @tableName NVARCHAR(50)= 'home'; DECLARE @tmpTable TABLE ( ColumnName NVARCHAR(50) NOT NULL , ColumnMaxLen INT NOT NULL ); DECLARE @columnName NVARCHAR(50); DECLARE @columnMaxLen INT; DECLARE @sql NVARCHAR(MAX); DECLARE tmpCursor CURSOR FOR S

sql 查询表中所有字段的名称

最近工作用到SQL语句查询表中所有字段的名称,网上查询,发现不同数据库的查询方法不同,例如: SQL server 查询表的所有字段名称:Select name from syscolumns Where ID=OBJECT_ID('表名') Sqlite 查询表中所有字段名称: SELECT name FROM sqlite_master WHERE type=’table’ ORDER BY name; Oracle查看所有字段 select column_name from user_ta

sql语句查询表中重复字段以及显示字段重复条数

今天跟大家分享两条SQL语句,是关于查询某表中重复字段以及显示该字段的重复条数. 1.select * from 表名 where 列名 in (select 列名 from 表名 group by 列名 having COUNT(*)>1) order by 列名 运行结果: 注*将表中某列下所有重复的字段查询出来,如果想查询该列中重复条数>=n的话,只需将sql语句中的">1"改为"n-1"即可. 2.select 列名,count(*) CO

MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原

大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 本文还参考了:http://blog.chinaunix.net/uid-20682026-id-3319204.html xtrabackup备份恢复测试 一.Xtrabackup介绍 1.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具I

更新SQL SERVER中所有表中包含字段为[Nd]的表值数据

select a.[id], a.[name],b.name, 'UPDATE '+ a.name+ ' SET Nd=''2015''' + ' where Nd=''2014''' from [sysobjects] a left join [syscolumns] b on a.id=b.id where a.[type] = 'u' and b.name='Nd' order by a.name 查询出数据,拼出SQL字符串,然后执行它

大数据情况下linux的配置

一:配置的大纲 主要的配置有几个方面: 主机名 IP 网络映射 增加新用户 给新用户root的权限,方便实验 关闭防火墙 安全子系统需要关闭 二:主机名的配置 命令:vi /etc/sysconfig/network 三:IP 的配置 注意点:按照下面的方法配置好ip时,需要关闭链接,再开启链接 四:网络的配置 命令:vi /etc/hosts 命令:当地的hosts也要修改 命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0 定义网关,这样才能pin

漫谈ELK在大数据运维中的应用

漫谈ELK在大数据运维中的应用 圈子里关于大数据.云计算相关文章和讨论是越来越多,愈演愈烈.行业内企业也争前恐后,群雄逐鹿.而在大数据时代的运维挑站问题也就日渐突出,任重而道远了.众所周知,大数据平台组件是很复杂的.而这庞大的系统整合问题,对于运维来说是很头疼的.所以,在大数据时代下的运维问题是日渐尖锐. 有人把运维比作医生给病人看病,那么日志则是病人对自己的陈述.所以只有在海量分布式日志系统中有效的提取关键信息,才能对症下药.如果能把这些日志集中管理,并提供全文检索功能,不仅可以提高诊断的效率

关于SQL中的字段“包含”与“包含于”字符串的写法

 1.查询表中某字段值"包含"某字符串的所有记录的方法 假如表中有一个name字段,查询name包含"张三"的所有记录,可以这样写sql: Stirng strsql="SELECT * FROM 表名 WHERE name LIKE '%"+"张三"+"%'"; 2.查询某字段值"包含于"某个字符串的所有记录的方法 如果查询表中name字段包含于字符串"张三是个好学生&q

asp.net中绘制大数据量的可交互的图表

在一个asp.net项目中要用到能绘制大数据量信息的图表,并且是可交互的(放大.缩小.导出.打印.实时数据),能够绘制多种图形. 为此进行了多方调查预研工作,预研过微软的MsChart图表组件.基于jquery的FlortChart图表.Silverlight的Visifire图表组件.基于js和flash的FusionCharts图表.Ext4.0框架中的图表.纯js的Highstock和纯js的Highcharts. 下面给出各个图表的预研结果,以供参考. MsChart MsChart是一