栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

列出所有具有最大长度和最大长度的SQL列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

列出所有具有最大长度和最大长度的SQL列

感谢您的建议。我想出了以下解决方案。它为我获取了我需要的数据,但是希望了解它是否可以提高效率。

declare @results table(ID varchar(36),TableName varchar(250),ColumnName varchar(250),DataType varchar(250),MaxLength varchar(250),Longest varchar(250),SQLText varchar(250))INSERT INTO @results(ID,TableName,ColumnName,DataType,MaxLength,Longest,SQLText)SELECt     NEWID(),    Object_Name(c.object_id),    c.name,    t.Name,    case         when t.Name != 'varchar' Then 'NA'        when c.max_length = -1 then 'Max'         else CAST(c.max_length as varchar)    end,    'NA',    'SELECT Max(Len(' + c.name + ')) FROM ' + OBJECT_SCHEMA_NAME(c.object_id) + '.' + Object_Name(c.object_id)FROM        sys.columns cINNER JOIN     sys.types t ON c.system_type_id = t.system_type_idWHERe    c.object_id = OBJECT_ID('MyTable')DECLARE @id varchar(36)DECLARE @sql varchar(200)declare @receiver table(theCount int)DECLARE length_cursor CURSOR    FOR SELECt ID, SQLText FROM @results WHERe MaxLength != 'NA'OPEN length_cursorFETCH NEXT FROM length_cursorINTO @id, @sqlWHILE @@FETCH_STATUS = 0BEGIN    INSERT INTO @receiver (theCount)    exec(@sql)    UPDATe @results    SET Longest = (SELECT theCount FROM @receiver)    WHERe ID = @id    DELETe FROM @receiver    FETCH NEXT FROM length_cursor    INTO @id, @sqlENDCLOSE length_cursorDEALLOCATE length_cursorSELECt     TableName,     ColumnName,     DataType,     MaxLength,     Longest FROM     @results


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517446.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号