• sql server 中的6种约束


    1、添加主键约束alter table stuinfo add costraint pk_stuno primary key (stuno)

    2、唯一约束alter table stuinfo add constraint uq_stuid unique (stuid)

    3、添加默认约束alter table stuinfo add constraint df_address default ('地址不详') for address

    4、添加检查约束alter table stuinfo add constraint ck_age check (age between 15 and 40) 这是年龄在15到40之间

    5、添加外键约束alter table stumarks add constraint fk_stuno foreign key (stuno) references stuinfo (stuno)这是一个成绩表(stumarks)引用学生信息表中的列 学号

    6、not null 非空约束,强制不接受空值,例如,创建表时,name varchar(6) not null

    1. --创建约束
    2. --为性别增加一个检查约束,要求性别只能是:'男' or '女'
    3. alter table AbcTable add constraint CK_AbcTable_EmpGender check(EmpGender='男' or EmpGender='女')
    4. --删除单个约束
    5. alter table AbcTable drop constraint CK_AbcTable_EmpGender
    6. --为EmpName增加一个唯一约束
    7. alter table Employees add constraint UQ_Employees_EmpName unique(EmpName)
    8. --为订单增加检查约束,要求Payment=(PaymentToBId+PaymentToTm)
    9. alter table Trade add constraint CK_Trade_PaymentLargeZero check(Payment>0 and PaymentToBid>0)
    10. alter table Trade add constraint CK_Trade_PaymentToBidToTm check(Payment=(PaymentToBid+PaymentToTm))
    11. alter table [Order] add constraint CK_Order_PaymentToBidToTm check(Payment=(PaymentToBid+PaymentToTm))
    12. alter table ChannelInMoneyFlow add constraint UQ_ChannelInMoneyFlow_InTradePayDate unique(InTradePayDate)
    13. --查找Check约束
    14. select * from sys.check_constraints chk
    15. select * from sys.tables tab
    16. SELECT
    17. tab.name AS [表名],
    18. chk.name AS [Check约束名],
    19. chk.definition
    20. FROM
    21. sys.check_constraints chk
    22. JOIN sys.tables tab
    23. ON (chk.parent_object_id = tab.object_id)
    24. ----查找唯一约束
    25. select * from sys.indexes idx where idx.is_unique_constraint = 1
    26. SELECT
    27. tab.name AS [表名],
    28. idx.name AS [约束名称],
    29. col.name AS [约束列名]
    30. FROM
    31. sys.indexes idx
    32. JOIN sys.index_columns idxCol
    33. ON (idx.object_id = idxCol.object_id
    34. AND idx.index_id = idxCol.index_id
    35. AND idx.is_unique_constraint = 1)
    36. JOIN sys.tables tab
    37. ON (idx.object_id = tab.object_id)
    38. JOIN sys.columns col
    39. ON (idx.object_id = col.object_id
    40. AND idxCol.column_id = col.column_id);
    41. ----查找外键约束
    42. select * from sys.foreign_keys fk
    43. select
    44. oSub.name AS [子表名称],
    45. fk.name AS [外键名称],
    46. SubCol.name AS [子表列名],
    47. oMain.name AS [主表名称],
    48. MainCol.name AS [主表列名]
    49. from
    50. sys.foreign_keys fk
    51. JOIN sys.all_objects oSub
    52. ON (fk.parent_object_id = oSub.object_id)
    53. JOIN sys.all_objects oMain
    54. ON (fk.referenced_object_id = oMain.object_id)
    55. JOIN sys.foreign_key_columns fkCols
    56. ON (fk.object_id = fkCols.constraint_object_id)
    57. JOIN sys.columns SubCol
    58. ON (oSub.object_id = SubCol.object_id
    59. AND fkCols.parent_column_id = SubCol.column_id)
    60. JOIN sys.columns MainCol
    61. ON (oMain.object_id = MainCol.object_id
    62. AND fkCols.referenced_column_id = MainCol.column_id)

     

  • 相关阅读:
    Fiddler代理远程网络请求到本地
    C#-异步方法关键字async和await
    Three.js之PBR材质与环境贴图
    idea jsp文件 高亮_有了这几款idea插件后,同事再也不叫我小白了
    Docker 基础使用(2) 镜像与容器
    Java中如何操作一个MySQL数据库呢?
    uvm_event和uvm_event_pool
    Vue 组件的全局注册与组件的jsx实现方法
    JavaWeb之MySql高级(保姆级教程)
    华为智能企业远程办公安全解决方案(1)
  • 原文地址:https://blog.csdn.net/c_lanxiaofang/article/details/127974614