在两个表中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
但出现
无法更新标识列 '学号'。
请问如何解决
在表texta中有如下个记录
----------------
学号 姓名 性别
1001 李一二 男
1002 陈三二 女
现在想将表名为陈二三的学号更新为1003
以为代码:
set identity_insert texta on
update texta
set 学号=1003
where 姓名='陈三二' set identity_insert texta off
但出现
无法更新标识列 '学号'。
请问如何解决
是不能更新标识列的。
可以利用这个属性先将texta与textb记录保存,删除后,再插入来完成。
1、这个是用来显式插入自增列时候用的2、自增列是不能修改的。3、想修改,先把自增属性去掉,修改后,再加上。
或者用临时表来过渡一下
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
我想把标识列做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 设定为标示后,不能手动插入,也不能修改,
只允许删除