中易网

SQL在建立约束时,给约束取得名字是干什么用?怎么用?约束名字存在哪里了?

答案:1  悬赏:60  
解决时间 2021-03-05 23:03
SQL在建立约束时,给约束取得名字是干什么用?怎么用?约束名字存在哪里了?
最佳答案
给约束取名字,   目的是将来你可以比较容易的删除掉.
否则你要自己去查询数据字典表.


例如下面的例子.
唯一约束的名字,  是  t_123,  那么当我不需要这个约束的时候
如果我知道名字, 那么可以直接去删除掉. 





-- 创建测试表.
CREATE TABLE test_123 (
  id   INT,
  value  VARCHAr(10)
);
GO

-- 创建 UNIQUE 约束.
ALTER TABLE test_123
  ADD CONSTRAINT t_123 UNIQUE (value);
GO

-- 删除  UNIQUE 约束.
ALTER TABLE [test_123] 
DROp CONSTRAINT [t_123];
GO

如果我不知道约束的名字, 那么我需要去查询数据字典表

SELECT
  tab.name AS [表名],
  idx.name AS [约束名称],
  col.name AS [约束列名]
FROM
  sys.indexes idx
    JOIN sys.index_columns idxCol 
      ON (idx.object_id = idxCol.object_id 
          AND idx.index_id = idxCol.index_id 
          AND idx.is_unique_constraint = 1)
    JOIN sys.tables tab
      ON (idx.object_id = tab.object_id)
    JOIN sys.columns col
      ON (idx.object_id = col.object_id
          AND idxCol.column_id = col.column_id);

查询到约束名称以后,  在删除掉这个约束.




以上 SQL 语句,   SQL  Server  2008 Express  下测试通过。
其他数据库, 由于 数据字典表不同, 因此语句也就不同了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
即膳是不是养生的?
某化合物由碳、氢、氧三种元素组成,其红外光
Excel表格中间有一道竖黑线 怎么都删
大古湾我想知道这个在什么地方
我想问一下家具行业现在还办生产经营许可证不
王小波《明星与癫狂》中的问题。
东北老厨房小餐馆地址有知道的么?有点事想过
从早到晚 光泽 圆滚滚造句
郭敬明说,六月六日生的是恶魔之子,那,天使
客人的食物中有根头发,这时该怎么解释?
西安那有卖保鲜泡沫箱的和冰块?
佳寄售行怎么去啊,有知道地址的么
崇州中胜世家二期好久交房?
玉石雕刻价格多少
手机系统自带的安装软件的功能被删除了。已经
推荐资讯
为什么不可以用吃浮游动物的鱼类来减少藻类植
爱马仕橘采星光女士淡香水价格多少
请问有谁知道索伊BCD-282型号的冰箱多少钱?
电子商务专业英语翻译
童声童趣这个地址在什么地方,我要处理点事
考科目二倒库可不可以离合松完
云南保山的服装店在哪里开才好?保山的服装生
求类似《穿越千年的吸血鬼》《我自望星朝天歌
交通事故中被抚养人为60岁的退休工人需要支付
成都世纪城天堂洲际大饭店离地铁一号线有多远
登高望远见青山绿水千帆过, 放歌纵酒喜暖日
求让鼠标一次点击N次的软件
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?