码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-04-09 23:20:19      阅读:471      评论:0      收藏:0      [点我收藏+]

标签:style   position   declare   sql   varchar   print   orm   status   select   

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
    SELECT  COLUMN_NAME
    FROM    INFORMATION_SCHEMA.COLUMNS
    WHERE   TABLE_NAME = @tableName
    ORDER BY ORDINAL_POSITION FOR READ ONLY;
    
OPEN tmpCursor;
FETCH NEXT FROM tmpCursor INTO @columnName;
WHILE @@FETCH_STATUS = 0
    BEGIN
        SET @sql = ‘SELECT @columnMaxLen=ISNULL(MAX(LEN([‘ + @columnName
            + ‘])), 0) FROM ‘ + @tableName;
     --   PRINT @sql;
        EXEC sp_executesql @sql, N‘@columnMaxLen int out‘, @columnMaxLen OUT;
        INSERT  @tmpTable
                ( ColumnName, ColumnMaxLen )
        VALUES  ( @columnName, @columnMaxLen );
        FETCH NEXT FROM tmpCursor INTO @columnName;
    END;
CLOSE tmpCursor;
DEALLOCATE tmpCursor;
SELECT  *
FROM    @tmpTable;

 

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

标签:style   position   declare   sql   varchar   print   orm   status   select   

原文地址:http://www.cnblogs.com/lizhanglong/p/6686932.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!