zoukankan      html  css  js  c++  java
  • 临时表列的长度

    创建一个临时表的时候.如果不指定列的长度,则临时表列的长度会根据所参照的表的对应列的大小,如

    --创建一个表

    Create table tmp1 (tmp1 varchar(3))

    --创建临时表
    select tmp1.tmp1 as tmp2 into #tmp2 from tmp1

    --第一条语句成功,但是第二条失败,因为超出了长度

    insert into #tmp2 values('123')
    insert into #tmp2 values('1234')

    --而如果没有参照其他数据表,则临时表的列会根据第一条插入的语句的数据长度而自动设置 ,如

    select '123' as tmp into #tmp3

    insert into #tmp3 values('123')
    insert into #tmp3 values('1234')

    --第一条语句成功,但是第二条失败,因为超出了长度

    因此,使用临时表的时候 ,要注意临时表的列的长度是多大,避免超出

    改变临时表的列的长度:

    select tmp1 as tmp2 into #tmp2 from tmp1
    --修改临时表列的长度
    alter table #tmp2 alter column tmp2 nvarchar(max)


    还有一种比较取巧:通过加长第一次插入的值的长度

    select tmp1 as tmp2,'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx' as xx into #tmp2 from tmp1



  • 相关阅读:
    开源ITIL管理软件iTop 2.5-2.6安装
    并发服务器
    套接字通信
    libevent
    gdb调试
    值得收藏的技术社区
    关于博客园随笔编辑页面内容不刷新(空白)的问题解决
    嵌入式Web框架
    内存地址的传递问题
    linux文件缓冲区
  • 原文地址:https://www.cnblogs.com/0banana0/p/2406258.html
Copyright © 2011-2022 走看看