在两个表中texta与textb,而它们的主键分别是pk_学号_texta,pk_学号_textb,而fk_学号_texta_textb是textb表的外键, 
在表texta中有如下个记录 
---------------- 
学号  姓名  性别 
1001  李一二  男 
1002  陈三二  女 
现在想将表名为陈二三的学号更新为1003 
以为代码: 
set identity_insert texta on
update texta 
set 学号=1003 
where 姓名='陈三二' set identity_insert texta off
但出现 
无法更新标识列 '学号'。 
请问如何解决

解决方案 »

  1.   

    这个属性可以 显式插入标识列。
    是不能更新标识列的。
    可以利用这个属性先将texta与textb记录保存,删除后,再插入来完成。
      

  2.   

    set identity_insert texta on 
    1、这个是用来显式插入自增列时候用的2、自增列是不能修改的。3、想修改,先把自增属性去掉,修改后,再加上。
    或者用临时表来过渡一下
      

  3.   

    或者将记录SELECT * INTO # FROM 表 WHERE 条件,DELETE记录,用新编号加#表的记录插入到当前表.
      

  4.   


    select * into #ls1 from textb where 姓名='陈三二'
    delete from textb where 姓名='陈三二'
    set identity_insert texta on 
    insert into textb(学号,姓名,性别)
    select 1003,姓名,性别 from where 姓名='陈三二'
    delete from texta where 姓名='陈三二'
    insert into textb
    select 1003,(剩下什么字段?) from #ls1
      

  5.   

    你的学号为什么用标识列?建议你取消这个属性,并将学号字段类型设置为varchar(10).
      

  6.   

    RT,   
      我想把标识列做Update   ,把ID变成另外一个数值,   
        用了   set   identity_insert   on   只能插入时用,不能Update.   
        
        或者可以先把标识列的标识属性取消,等把ID   更新之后,在把标识属性加上去,有这种方法吗?   
      (越简单越好) 
    问题点数:50、回复次数:7
    Top
     1 楼pbsql(风云)回复于 2004-12-09 17:38:40 得分 25标识列只允许插入、删除,不允许更新   
        
      字段的标识标识属性不能添加或取消
    Top2 楼pbsql(风云)回复于 2004-12-09 17:39:59 得分 0 企业管理里添加或取消字段的标识属性,实际上也是添加删除表的方式
    Top3 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2004-12-09 17:43:16 得分 0 of   course
    Top4 楼caowhattodo(那一夜的风情)回复于 2004-12-09 17:43:43 得分 0 楼上的兄弟:   
      但是没有用sql语句实现的吗?
    Top5 楼pbsql(风云)回复于 2004-12-09 17:50:30 得分 0 当然没有
    Top6 楼zengzhengliang(啊牛)回复于 2004-12-09 21:00:26 得分 0 设定为标示后,不能手动插入,也不能修改,   
      只允许删除