當前位置:首頁 » 編程語言 » sql判斷約束存在

sql判斷約束存在

發布時間: 2022-11-20 03:19:26

sql server 判斷 這么判斷某列是否存在 預設約束,這么判斷某列的數據類型

查找表中列是否存在預設約束:
select * from sysobjects where name='DF_表名_列名'
刪除約束
alter table 表名 drop constraint 約束名
查詢表中某列類型:
select type_name(xtype) from syscolumns where id=object_id('表名') and name='列名'

㈡ 能在C#中if判斷Sql表是否有主鍵約束呢刪除時它老是報主鍵有約束!

這個 刪除時抱錯的, 一般是 外鍵錯誤.

例如
班級表 有
1班
2班
3班

學生表有
張三(1班)
李四(2班)
王五(3班)

班級表和學生表上面, 有個默認的外鍵.

現在你嘗試刪除 1班.
那麼資料庫報錯, 原因在於
如果簡單把 班級表的 1班刪除了, 那麼原來在 1班的張三怎麼辦?

處理辦法有2種. ( 1種 自動, 1種手動)

1種自動的
是修改外鍵約束, 為 DELETE CASCADE 方式 或者 SET NULL方式
這種情況下, 你 C# 程序中, 不需要修改任何代碼。

DELETE CASCADE 方式 , 就是如果你 刪除 1班了, 那麼資料庫自動把 張三也刪除了。
SET NULL方式, 就是如果你 刪除 1班了, 那麼資料庫自動把 張三 的 「所屬班級」設置為 NULL.

1種手動
是 C# 代碼裡面, 在刪除班級以前, 先去看看 這個班級下面有沒有學生, 如果有, 那麼 提示一個消息框給用戶 「一班下面已經存在有學生,確認要把班級與學生數據一同刪除么?」
如果用戶按了 確認, 那麼 C# 先刪除學生, 後刪除班級。

㈢ 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個視圖.

㈣ sql語句 判斷表是否存在

IF EXISTS(SELECT name FROM [sysobjects] WHERE name = '表名')

PRINT '該表存在'

ELSE

PRINT '該表不存在'。

㈤ sql server怎麼查詢某一表的某一欄位是否有約束

示例:
CREATE TABLE AA (
BB INT UNIQUE
);
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)
WHERE
tab.name = 'AA'
結果:
表名 約束名稱 約束列名
AA UQ__AA__3214B5C34460231C BB

㈥ 什麼是SQL裡面的約束條件

SQL 約束(Constraints)

  • SQL 約束用於規定表中的數據規則。

  • 如果存在違反約束的數據行為,行為會被約束終止。

  • 約束可以在創建表時規定(通過 CREATE TABLE 語句),或者在表創建之後規定(通過 ALTER TABLE 語句)。

本回答來自:SQL 約束(Constraints)_樹懶學堂

SQL CREATE TABLE + CONSTRAINT 語法

㈦ sql server如何查詢一個表中的一個列是否存在唯一約束 比如查詢 AA表的 BB列

CREATE TABLE AA (
BB INT UNIQUE
);

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)
WHERE
tab.name = 'AA'

表名 約束名稱 約束列名
AA UQ__AA__3214B5C34460231C BB

㈧ SQL怎麼設置帶判斷的唯一性約束

將AB都設置為主鍵:
單一個主鍵的內容和其他行重復是不會提示的,只有兩個主鍵的內容都重復才會有主鍵重復提示
例如列a,b
已有
a,b
1,2
2,3
現在鍵入
a,b
1,3
是不會提示重復的
如果鍵入
a,b
1,2
此時才會提示重復,這樣就達到目的了

㈨ 如何查看SQL表中都存在哪些約束

alt+F1就可以查看該表的表結構以及各種約束

㈩ 如何判斷一個表是否建立索引約束等信息的SQL語句

--獲取某表的所有索引,包括索引歸屬列名
sp_statistics 'Table'
--獲取索引與索引歸屬列以及描述信息
sp_helpindex 'Table'
--獲取某表的約束信息以及歸屬列
sp_helpconstraint 'Table'
--獲取某表中的自動增長列的列名
select name from syscolumns
where id=object_id('Table') and status & 128 = 128
--獲取某表中的自動增長列的列名
select name from syscolumns
where id=object_id('Table') and
COLUMNPROPERTY(id,name,'IsIdentity')=1

熱點內容
安卓怎麼轉移數據華為 發布:2025-01-15 21:03:02 瀏覽:140
軟體列印反饋單腳本錯誤 發布:2025-01-15 21:01:24 瀏覽:177
如何進cs里的練槍伺服器 發布:2025-01-15 21:00:07 瀏覽:979
蘋果手機存儲晶元 發布:2025-01-15 20:52:02 瀏覽:162
盲人讀屏軟體安卓哪個好 發布:2025-01-15 20:47:13 瀏覽:728
炸圖腳本 發布:2025-01-15 19:56:07 瀏覽:429
八字源碼 發布:2025-01-15 19:54:47 瀏覽:372
伺服器可以變電腦使用嗎 發布:2025-01-15 19:40:29 瀏覽:202
傳奇手游免費腳本 發布:2025-01-15 19:30:21 瀏覽:300
我國當前資源配置存在哪些問題 發布:2025-01-15 19:25:03 瀏覽:514