zoukankan      html  css  js  c++  java
  • SQL Server 中update的小计

    update中涉及到多个表的:

    1.update TableA set a.ColumnC=b.ColumnC from TableA a inner join TableB b on a.ColumnD=b.ColumnD

    这样是不对的,报错如下:

    消息 4104,无法绑定由多个部分组成的标识符 “xxxx”

    image

    虽然前面的TableA和后面的TableA是同一个表,正确语法如下(我用的是SQL Server 2008测试的结果):

    update TableA set ColumnC=b.ColumnC from TableA a inner join TableB b on a.ColumnD=b.ColumnD

    2.update TableA set ColumnC=b.ColumnC from TableA a inner join TableB b on a.ColumnD=b.ColumnD

    还是这个update语句,如下消息:

    消息 8152 将截断字符串或二进制数据

    image

    因为我得TableA是这样生成的:

    select

               column1,

              ‘ ‘  column2

    into TableA

    from  TableC

    具体的column2的字符类型好像是varchar,不知道系统为什么这样判断?length是1,所以update时就出错了,就好像把一根20cm的筷子放到只有10cm的易拉罐中一样,只好把筷子截断10cm。

    3.有时要查看表中所有列的数据类型,可以使用sp_help

    可以执行的几种方式:

         sp_help

         sp_help  数据库对象

        sp_help 数据类型

    我使用sp_help TableA

    开始还想怎么nvarchar(255)的length是510啊?length是以字节为单位的。我使用的SQL Server是中文版的(应该说字符集是中文的比较准确),中文的一个字符等于两个字节。

    image

  • 相关阅读:
    随笔
    随笔
    第一个存储过程
    mysql 存储过程
    join
    随笔
    玩家注册登录
    mysql 存储二进制数据
    mysql学习
    socket listen/accept
  • 原文地址:https://www.cnblogs.com/cnmarkao/p/3687398.html
Copyright © 2011-2022 走看看