本帖最后由 chentijian 于 2010-09-04 09:23:16 编辑

解决方案 »

  1.   

    sql2000貌似不支持XML吧你可以把那列在前台读取出来
    然后使用程序加载读取XML
      

  2.   

    sql2000也能支持部分xml功能,这个没问题,在程序里将xml文件读出来,作为text类型的参数传到存储过程里倒是也可以,但是在查询分析器里测试时很不方便。如果可以只传一个行号进去的话就方便多了。
      

  3.   

    不太理解问题,首先读取出一个xml字符串,然后这个xml赋值到@docEXEC sp_xml_preparedocument @idoc OUTPUT, @doc
    -- Execute a SELECT statement that uses the OPENXML rowset provider.
    SELECT *
    FROM OPENXML (@idoc, '/ROOT/Customer',1)
      WITH (CustomerID varchar(10),
      ContactName varchar(20))
    加条件以后出来的结果用xml表示出来,是这个意思吗?
      

  4.   

    我一般的处理方法 
    declare @xml varchar(8000)
    select @xml='<root>'
    EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
    -- Execute a SELECT statement that uses the OPENXML rowset provider.
    SELECT @xml=@xml+'<Customer Customerid="'+CustomerID+'" ContactName="'+ContactName+'"/>'
    FROM OPENXML (@idoc, '/ROOT/Customer',1)
      WITH (CustomerID varchar(10),
      ContactName varchar(20)) where xxxxx
    select @xml=@xml+'</root>'
    print @xml
      

  5.   

    不行啊,xml的内容超过8000字节,不能再使用varchar数据类型。
    问题的关键是在存储过程里怎么才能给顶楼例子里的@doc变量赋值。
      

  6.   

    text赋值不能用一般的方式,应该是用writetext,具体怎么用有点忘了.2000以后长字符串一直用varchar(max)
      

  7.   

    刚才试了下,好像text类型的变量是不能被定义的
      

  8.   

    WRITETEXT 只能更新表,也能能给变量赋值。