1. sql中用語句查看錶列的約束以及解除約束
SELECT
USER_CONS_COLUMNS.CONSTRAINT_NAMEAS約束名,
USER_CONS_COLUMNS.TABLE_NAMEAS表名,
USER_CONS_COLUMNS.COLUMN_NAMEAS列名,
USER_CONS_COLUMNS.POSITIONAS位置,
CONSTRAINT_TYPE,
SEARCH_CONDITION
FROM
USER_CONSTRAINTS
JOINUSER_CONS_COLUMNS
ON(USER_CONSTRAINTS.CONSTRAINT_NAME
=USER_CONS_COLUMNS.CONSTRAINT_NAME)
WHERE
CONSTRAINT_TYPEIN('C','V','O');
其實主要就是看
USER_CONSTRAINTS與 USER_CONS_COLUMNS 這2個視圖.
資料庫管理員的話
可以看
DBA_CONSTRAINTS與 DBA_CONS_COLUMNS 這2個視圖.
2. 如何知道SQL中默認值約束名稱是什麼
如果作者沒有指定DEFAULT約束名,那麼系統會自動命名,可以用以下語句獲得該DEFAULT約束名:
select name from sys.default_constraints
where parent_object_id=object_id('表名')
and parent_column_id=columnproperty(object_id('表名'),'列名',columnid)
3. 如何寫SQL查詢一個約束條件的內容
sp_helptext約束名
可以查看系統相關的系統存儲過程,可以查看錶約束存儲過程函數的內容sp_help相關存儲過程用法
這樣可以嗎? 如有疑問,及時溝通!
請採納!
4. sqlserver資料庫里怎麼查找一個表裡的約束,要查出 約束名、列名、約束類型用sql語句查詢
上面的各樓對SQLSERVER的系統對象操作的語句,要切換到master資料庫中。
切記切記。
5. SQL在建立約束時,給約束取得名字是干什麼用怎麼用約束名字存在哪裡了
給約束取名字, 目的是將來你可以比較容易的刪除掉.
否則你要自己去查詢數據字典表.
例如下面的例子.
唯一約束的名字, 是 t_123, 那麼當我不需要這個約束的時候
如果我知道名字, 那麼可以直接去刪除掉.
--創建測試表.
CREATETABLEtest_123(
idINT,
valueVARCHAR(10)
);
GO
--創建UNIQUE約束.
ALTERTABLEtest_123
ADDCONSTRAINTt_123UNIQUE(value);
GO
--刪除UNIQUE約束.
ALTERTABLE[test_123]
DROPCONSTRAINT[t_123];
GO
如果我不知道約束的名字, 那麼我需要去查詢數據字典表
SELECT
tab.nameAS[表名],
idx.nameAS[約束名稱],
col.nameAS[約束列名]
FROM
sys.indexesidx
JOINsys.index_columnsidxCol
ON(idx.object_id=idxCol.object_id
ANDidx.index_id=idxCol.index_id
ANDidx.is_unique_constraint=1)
JOINsys.tablestab
ON(idx.object_id=tab.object_id)
JOINsys.columnscol
ON(idx.object_id=col.object_id
ANDidxCol.column_id=col.column_id);
查詢到約束名稱以後, 在刪除掉這個約束.
以上 SQL 語句, SQL Server 2008 Express 下測試通過。
其他資料庫, 由於 數據字典表不同, 因此語句也就不同了。
6. sql語句,怎麼查看一個表中的所有約束
sp_mshelpcolumns student
如上可以看到該表的所有結構、約束、默認值等
7. 在SQL sever資料庫中用查詢分析器用怎麼修改約束名
使用sp_rename:
exec sp_rename '舊約束名','新約束名','OBJECT'
8. ORACLE sqlplus查看某個表的指定列的約束名,使用什麼命令
據我所知,sqlplus的命令中,沒有直接查詢約束的。
column column_name;可以查詢相關column的屬性,這個屬性包括約束,但是不包括約束名稱(比如外鍵名稱等)。
所以要查詢約束名稱還是需要通過sql語句,查詢相關視圖獲得。
語句為:
select CONSTRAINT_NAME from user_cons_columns where table_name='XXXXX' and COLUMN_NAME='XXXXXX';(注意:XXXXX均為大寫)
9. sql查詢表中的約束
exec sp_helpconstraint S
ALTER TABLE S DROP CONSTRAINT 你自己的約束名稱;
10. 如何在sqlserver查詢中與一個表約束的其它表名
主鍵約束
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_primary_key = 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);
唯一約束
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);
外鍵約束
select
oSub.name AS [子表名稱],
fk.name AS [外鍵名稱],
SubCol.name AS [子表列名],
oMain.name AS [主表名稱],
MainCol.name AS [主表列名]
from
sys.foreign_keys fk
JOIN sys.all_objects oSub
ON (fk.parent_object_id = oSub.object_id)
JOIN sys.all_objects oMain
ON (fk.referenced_object_id = oMain.object_id)
JOIN sys.foreign_key_columns fkCols
ON (fk.object_id = fkCols.constraint_object_id)
JOIN sys.columns SubCol
ON (oSub.object_id = SubCol.object_id
AND fkCols.parent_column_id = SubCol.column_id)
JOIN sys.columns MainCol
ON (oMain.object_id = MainCol.object_id
AND fkCols.referenced_column_id = MainCol.column_id)
Check約束
SELECT
tab.name AS [表名],
chk.name AS [Check約束名],
col.name AS [列名],
chk.definition
FROM
sys.check_constraints chk
JOIN sys.tables tab
ON (chk.parent_object_id = tab.object_id)
JOIN sys.columns col
ON (chk.parent_object_id = col.object_id
AND chk.parent_column_id = col.column_id)