update tb set col1='很长的一段。'
这里的“很长的一段”是不是有字数限制啊?
太长的时候,类似报错:截断二进制什么

解决方案 »

  1.   

    根据字段类型有限制:
    char 和 varchar  1~8000
    int  -2^31 (-2,147,483,648)~2^31-1 (2,147,483,647)
    tinyint  0~255
    nchar 和 nvarchar 1~4000 
    bit 0 or 1
    .....
      

  2.   

    要在你的col1定义的长度范围内,否则就报这种错误
      

  3.   

    sql server数据类型char和nchar,varchar和nvarchar,text和ntext允许的字符长度字符串
    char固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。varchar可变长度的非 Unicode 数据,最长为 8,000 个字符。text可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。Unicode 字符串
    nchar固定长度的 Unicode 数据,最大长度为 4,000 个字符。nvarchar可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。ntext可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。二进制字符串
    binary固定长度的二进制数据,其最大长度为 8,000 个字节。varbinary可变长度的二进制数据,其最大长度为 8,000 个字节。image可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。
      

  4.   


    你的col1要更新的内容超过了
    数据库中col1定义类型的最大值
    所以报错你把col1的字符串改大
      

  5.   

    3楼贴的很详细如果是 sql2005 的话可以改为varchar(max)
      

  6.   

    我的数据库里,col1设置为text,要更新的“很长的一段”有4万5千多个字符(用word统计的)
    应该是不超过col1的最大限制的,为什么还会报这样的错误 ?
    3楼说的字符,是指字节还是--一个汉字也是一个字符?
      

  7.   

    你把word里面的信息
    赋值粘贴到记事本
    然后把记事本的信息
    在粘贴到sql语句中
    看看
      

  8.   

    我可能说错了。
    使用php程序,把数据插入数据库时,报错:Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in test.php错误SQL主表插入语句:insert into ......--------------------
    把这条insert语句复制下来(使用查看页面源代码的方法)后在microsoft sql server management studio运行,可以运行成功。
    请问,这个是php的问题吗?
      

  9.   

    no parameters were bound in test.php
    插入语句的参数有问题?代码是怎么写的?
      

  10.   

    $this->funDbBeginTransaction();
    $rStmt=$this->db->prepare($sSql);
    $rStmt->execute();
      

  11.   

    我的字段,设置为text
    如3楼说的,我的字段长度不会对那条要插入的数据有影响啊
      

  12.   

    text
    类型是不限制的呀,是可以更新的
      

  13.   

    问题解决了
    是pdo的问题
    重新配置了pdo,可以取更长的字符串
      

  14.   

    studio里直接“编辑前200行”,把内容复制到这个字段里,回车,报错:截断
    把列由text改为varchar(max),再把内容复制到这个字段里,回车,ok