zoukankan      html  css  js  c++  java
  • 数据库更改主键的类型-主键存在外键

    总结: SQLserver想要修改主键的数据类型

    如果有外键 那么删除主键与外键的约束

    修改主键的数据类型 添加此表主键约束 如果外键也是另一个表的主键 那么继续删除此表主键的约束 修改此column的数据类型 添加此表主键约束  添加外键约束

    if(A.column = A.primarykey){

           if(A.column = B.foreignkey)

           {

                  drop constraint A.primarykey

                  drop constraint B.foreignkey

                  alter A.column

                  add constraint A.primarykey

                  if(A.column = B.primarykey){

                         drop constraint B.primarykey

                         alter B.column

                         add constraint B.primarykey

                         add constraint B.foreignkey

                  }

           }

           else{

                  drop constraint A.primarykey

                  alter A.column

                  add constraint A.primarykey

           }

    }

     

    查看表的外键约束代码

    SELECT name

      FROM sys.foreign_key_columns f

      JOIN sys.objects o

        ON f.constraint_object_id = o.object_id

     WHERE f.parent_object_id = OBJECT_ID('表名');

    例子:

    将主键Sno的类型改为char(11)

     

    先删除外键 再修改主键类型 然后添加外键

    alter table Student

    drop constraint PK_Student       //这个是主键约束

    alter table SC

    drop constraint FK__SC__Sno__3F466844   //这个是外键约束  在另一个表SC 中

     

    FK__SC__Sno__3F466844经过查询外键已经被删除

    接下来修改主键数据类型 

     

     

    主键类型修改成功, 但是现在已经不是主键了,所以接下来添加主键约束

     

    测试一下结果在有主键约束的条件下也不能修改主键类型  好麻烦啊  (纯测试用) 

     

    所以接下来修改外键类型时 因为外键在SC表中也是主键 所以同样主外键约束都要删除 然后修改再添加

    删除SC的主键约束 然后修改类型 添加类型

     

    修改主键类型

     

    添加主键约束

     

    然后添加外键约束

     

    成功!

     

     

  • 相关阅读:
    Android UI 之实现多级列表TreeView
    python小游戏实现代码
    【iOS知识学习】_UITableView简介
    根据指定电话号码得到通讯录上的姓名
    【转载】公钥、私钥、数字签名等知识
    常见的哈希Hash算法 & MD5 & 对称非对称加密 & 海明码
    Mac电脑解压文件unrar用密码问题解决
    一道题目- Find the smallest range that includes at least one number from each of the k lists
    求逆序对数总结 & 归并排序
    【转载】非常棒的算法面试类资源汇总
  • 原文地址:https://www.cnblogs.com/zhengbao/p/10740567.html
Copyright © 2011-2022 走看看