sqlserver数据库修改主键类型
现在数据库是自增长的主键,比如要修改主键为字符串类型的,但是表里数据相互有主外建的关系,有什么方法可以修改?...
现在数据库是 自增长的主键,比如要修改主键为字符串类型的,但是表里数据相互有主外建的关系,有什么方法可以修改?
展开
4个回答
展开全部
要是这个表的主键是另一个表的外键的话,两个都需要改,改成相同的,先改外键的那个表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主键的要求是不能为空,不能存在两行值相同,只要你修改后的值不与别的行的值相同,可以修改。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选择表,右键点击 修改 ,选择标识列,在下面的列属性中,把标识范围中 是标识 改成否,然后修改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果每次要更新多行,那必须还要有一个唯一索引来定位要修改的记录,比如为Col_Uq,那可以如下写触发器:
create trigger tri_update_tb_1_pk
on tb_1
for update
as
if not update(col_pk)
return
update tb_2
set col_pk=i.col_pk from tb_2,inserted i,deleted d
where tb_2.col_pk=d.col_pk
and i.Col_Uq=d.Col_Uq
go
如果保证每次只更新一行,那可以如下写触发器:
create trigger tri_update_tb_1_pk
on tb_1
for update
as
if not update(col_pk)
return
if (select count(*) from inserted)> 1
return
update tb_2
set col_pk=i.col_pk from tb_2,inserted i,deleted d
where tb_2.col_pk=d.col_pk
go
create trigger tri_update_tb_1_pk
on tb_1
for update
as
if not update(col_pk)
return
update tb_2
set col_pk=i.col_pk from tb_2,inserted i,deleted d
where tb_2.col_pk=d.col_pk
and i.Col_Uq=d.Col_Uq
go
如果保证每次只更新一行,那可以如下写触发器:
create trigger tri_update_tb_1_pk
on tb_1
for update
as
if not update(col_pk)
return
if (select count(*) from inserted)> 1
return
update tb_2
set col_pk=i.col_pk from tb_2,inserted i,deleted d
where tb_2.col_pk=d.col_pk
go
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询