我这里有一个测试数据库和一个正式数据库,都是SQLServer2005,
测试库上对一个 varbinary(max)字段写入大文件是成功的, 可是正式库上对该字段写的时候,却不能超过64K,
请问哪位高手碰过这个问题

解决方案 »

  1.   

    两个表的结构肯定是一样的,就是不知道正式系统里怎么限制了varbinary(max)的最大长度
    还有 两个库执行 select @@textsize 都显示的是 2147483647
    执行 sp_configure 显示的 max text repl size (B) 也一模一样 
      

  2.   


    请问是在查询分析器里直接执行sql写入,还是用程序写入呢?
      

  3.   

    如果是程序写入,可以跟踪下sql,看看传给sql server的值是否相同。
      

  4.   

    嗯,我也碰到这个问题了,我从ADO执行一个存储过程,希望它能传回一个xml串,可是那个串只能传回最多8000各字节(NVARCHAR的时候只有4000)!唉,难道非要用ado.net或者细化业务逻辑吗?
      

  5.   

    CREATE TABLE #(
    a varbinary(max)
    )DECLARE
    @a varbinary(max)
    SELECT 
    @a = CONVERT(varbinary(8000), REPLICATE('A', 8000))
    WHILE LEN(@a) < 1024 * 1024  -- 写 1 MB
    SELECT
    @a = @a + @aINSERT # VALUES(@a)SELECT DATALENGTH(a) FROM #DROP TABLE #
      

  6.   

    ADO 的话, 你尝试在做最终输出的时候, 把 xml 转换成 varbinary(max), 再转换为 image
    或者转换为 ntextADO 只有 text/ntext/image 才支持大数据的
      

  7.   

    我的 sql 的测试结果是: 2048000, 说明数据存储是勃起 64 KB的