如何整理SQL Server输入数据

塔斯公主贱

塔斯公主贱

2016-01-29 15:50

如何整理SQL Server输入数据,如何整理SQL Server输入数据

我当前的项目中包括一个6200万行、500多列的表。其中的数据来自SQL Server以外,它们到达的表中有一个标识主键,所有剩下的列以varchar(50)形式保存。

问题解决

有许多日期以YYYYMMDD格式保存,这是我注意到的第一个问题。我把这些日期改为整数列。然后我发现许多整数以varchar形式保存,我把它们都改为整数。

接下来,许多列中包含“Y”或“N”或NULL。我们很可能会把它们转换成位列,但这样做存在一个重大的缺陷——你不能索引一个位列。因此,我把它们改成char(1) NULL。

此外,还有一些列中保存有邮政编码,前面一列为五个数字,后面一列为四个数字或NULL。我将它们分别改成char(5)和char(4),都为NULL。

我遇到的另外一个问题是,我无法明白相当一部分列中的内容。我把它们单独处理,为varchar(50)。我希望确定每个varchar列中保存的字符串的最大长度,但要检查6200万行中的所有数据中不切实际的。因此,我选择生成所有列的char或varchar列表。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)

SELECT

COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE

FROM

INFORMATION_SCHEMA.COLUMNS

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)

WHERE TABLE_NAME ='tblArthurClean'

AND DATA_TYPE IN('char','varchar')

我复制结果表中的第一列,把它粘贴到记事本中(这是我最喜欢的文本编辑器,因为它具有优秀的查找-替换功能。)要确定一个特定列中的最长数据,使用下列脚本:

SELECT Max(Len( ColumnName ))

FROM TableName

推而广之,我希望遍历列列表并生成我需要的声明。我把需要的内容集中到一些格式化行中,用一个单独的查询来达到这个目的。

SELECT

',Max(Len( ' + COLUMN_NAME + ' )) AS ' + COLUMN_NAME

FROM

INFORMATION_SCHEMA.COLUMNS

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)

WHERE TABLE_NAME = 'tblArthurClean'

AND DATA_TYPE IN( 'char', 'varchar' )

第二页中是一个简短的结果集。现在按照以下步骤执行:

把结果集粘贴到一个文本编辑器中。 在第一行前面插入SELECT。 在文件末尾增加FROM和表的名称。

我在文件开头和末尾添加以下内容。

SELECT GetDate()

GO

然后我删除输出结果第一行前面的逗号,把它保存为一个查询,加载再让它运行。

我对它在我的服务器上的性能非常满意。它只用了一个小时多一点的时间计算出结果——对于分析一个6200万行几百列的表,时间不算太长。

得到的结果是一行结果集,我可以用它作为修改表结构和列名称的指导,并把这些结果与原始表联系起来,做出相应的调整。

本文说明退一步思考如何能够为你节省大量的输入时间。我的座右铭是:“只要SQL能够做的,它都应该完成。”

展开更多 50%)
分享

猜你喜欢

如何整理SQL Server输入数据

SQLServer
如何整理SQL Server输入数据

如何转移SQL SERVER数据库

SQLServer
如何转移SQL SERVER数据库

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何在SQL Server数据库中加密数据

编程语言 网络编程
如何在SQL Server数据库中加密数据

如何远程连接SQL Server数据库

MySQL mysql数据库
如何远程连接SQL Server数据库

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server磁带数据备份

SQLServer
SQL Server磁带数据备份

如何在SQL Server中恢复数据

SQLServer
如何在SQL Server中恢复数据

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《看门狗》抓骇客详细心得分享

《看门狗》抓骇客详细心得分享

高端修图手法!仅需一招便可提升你的照片质感

高端修图手法!仅需一招便可提升你的照片质感
下拉加载更多内容 ↓