数据库有个表 T1.T1ID, CONTENTCONTENT 字段里有N条数据,数据为字符串并都有一定规律,
比如,“<html>xxxxx<head>yyyy</head> <body>zzzz</body></html>”现在我想新建一个字段HEAD
T1ID,CONTENT, HEAD然后把CONTENT里的<head></head>之间的内容复制到HEAD字段中。我会用C#把取出的CONTENT内容过滤成只有<head></head>之间的内容,现在的问题是怎么批量插入新字段? 
我想过利用ID循环来实现,但问题是ID不是连续的,并且不知道最大ID数,如果循环遇ID为空时会出现什么情况呢?

解决方案 »

  1.   

    可以先把head的内容插入到一个临时表中,然后再从临时表中和T联合处理
      

  2.   

    把你过滤出来的内容和与之相应的ID上传到一个临时表。然后根据ID更新原来的表的Head字段。
      

  3.   

    update [t1] set [head]=substring(content,charindex('<head>',content)+6,charindex('</head>',content)-charindex('<head>',content)-6)
    from [t1]
    where content like '%<head>%</head>%'
      

  4.   


    update [t1] set [head]=substring(content,charindex('<head>',content)+6,charindex('</head>',content)-charindex('<head>',content)-6)
    from [t1]
    where content like '%<head>%</head>%'up
      

  5.   

    好了,搞定了,是我新建的HEAD字段的长度比CONTENT短,但是我想不通的是HEAD长度最多就是500了不起了,为什么非要<=CONTENT才行呢(CONTENT长度是10000)
      

  6.   

    你head设为500还有问题?如果有的话看看是不是因为head是nchar(500)的问题?