SQL在建立约束时,给约束取得名字是干什么用?怎么用?约束名字存在哪里了?
1个回答
2013-06-08
展开全部
给约束取名字, 目的是将来你可以比较容易的删除掉.
否则你要自己去查询数据字典表.
例如下面的例子.
唯一约束的名字, 是 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 下测试通过。
其他数据库, 由于 数据字典表不同, 因此语句也就不同了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询