• SQL Server数据导入与创建视图


    数据导入

    从kusto中到处了6万多条数据,打算导入到SQL Server中。对应的数据表已经建好,数据类型也都各自匹配,但是导入时依然遇到了许多问题。列举问题及解决方案如下,以为记录。

    1.选择数据源导入时,提示未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序

    需要下载相应版本的AccessDataEngine,可搜索下载。

    2.导入过程中报错,提示文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决

    第一次碰到这个错误时,我试着把报错列在表中的文本大小改为MAX(vchar),再次导入后,还是会报错。后来了解到,SQL Server的导入数据时,为确定数据表的字段类型,取源文件的前8行来判别。如果前8条是长度少于255的字符串,则设成nvarchar(255) 类型,但如果Excel后面的记录中有长度超过255的,导入时就会出错。考虑到,表中列较多,为了防止其他列再次报错,就新建了一行,凡是文本类型,均复制很长的文本,再次导入就不会出错了。

    创建视图

    导入数据后,由于用到的只是其中一部分,就需要创建视图,做一次数据的筛选,将建立视图的脚本记录如下。(已将列名隐藏)

    --以incidentid分组,筛选出modifieddate最新的
    if exists(select * from sysobjects where id=OBJECT_ID(N'V_New') and objectproperty(id,N'IsView')=1)
    drop view V_New       --删除视图
    go
    create view dbo.V_New   --创建视图
    as
    with tempTable as
    (
        select row_number() over(partition by incidentid order by modifieddate desc) as rows, incidentId, ModifiedDate from incidents
    )
    select distinct c1, c2
    substring(title, charindex('[',title)+1,charindex(']',title)-2) as type  --从title列中提取中括号中间的内容,charindex函数用来获取位置,substring则根据起始位置与长度截取数据
    from tempTable om left join incidents i on om.IncidentId = i.IncidentId where om.rows = 1 and title like '[[]Co%' and RoutingId not like '%bcd' go

    参考链接:

    https://blog.csdn.net/qq_40155090/article/details/104041389 

    https://www.cnblogs.com/qcqc/p/5645873.html

  • 相关阅读:
    用windows脚本实现文件下载
    pku1325 Machine Schedule
    中位数
    pku1468 Rectangles
    最小密度路径
    合并序列
    PowerDesigner(5)转载
    责任链模式
    PowerDesigner(3)转载
    解释器模式
  • 原文地址:https://www.cnblogs.com/yifeixu/p/13353665.html
Copyright © 2020-2023  润新知