sql約束名
⑴ sql server中如何為默認約束起約束名
create table student
(
s_id int,
s_name varchar(20),
s_age int,
s_籍貫 varchar(10) default '漢族',
s_sex char(2) not null,
)
alter table student add constraint Agecheck check(s_age>15 and s_age<30)
alter table student add constraint primaryid primary key(s_id)
⑵ 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 下測試通過。
其他資料庫, 由於 數據字典表不同, 因此語句也就不同了。
⑶ 請問下在sql server中,我創建約束的時候沒有定義約束名,它默認的約束名是什麼呀
如果不指定的話,默認約束名是 約束簡寫_表名
主鍵(Primary Key)約束:如 PK_表名
唯一(Unique Key)約束:如 UQ_表名
默認(Default Key)約束:如 DF_表名
檢查(Check Key)約束:如 CK_表名
外鍵(Foreign Key)約束:如 FK_表名
例如表名是TEST 那相應的默認約束名稱 為 XX_表名
⑷ 在sql server中,默認的約束名是什麼
createtable 。
⑸ sql約束名是什麼
constraint 約束名字
用法:
alt table 表名
add constraint 約束名 約束類型 (約束內容)
⑹ SQL server語句所有的約束條件
1、主鍵約束(Primary Key constraint):要求主鍵列數據唯一,並且不允許為空。
2、唯一約束(Unique constraint):要求該列唯一,允許為空,但只能出現一個空值。
3、檢查約束(Check constraint):某列取值范圍限制,格式限制等,如有關年齡、郵箱(必須有@)的約束。
4、默認約束(Default constraint):某列的默認值,如在資料庫里有一項數據很多重復,可以設為默認值。
5、外鍵約束(Foreign Key constraint):用於在兩個表之間建立關系,需要指定引用主表的哪一列。
(6)sql約束名擴展閱讀:
對於存在外鍵約束的表,如果進行刪除非空的外鍵,可能會出現錯誤。 如果在 FOREIGN KEY 約束的列中輸入非 NULL 值,則此值必須在被引用的列中存在,否則將返回違反外鍵約束的錯誤信息。
列級 FOREIGN KEY 約束的 REFERENCES 子句僅能列出一個引用列,且該列必須與定義約束的列具有相同的數據類型。表級 FOREIGN KEY 約束的 REFERENCES 子句中引用列的數目必須與約束列列表中的列數相同。每個引用列的數據類型也必須與列表中相應列的數據類型相同。
⑺ 什麼是SQL約束不要存理論的,謝謝!
sql 約束就是你想設定某個欄位有個限定.
比如說:在性別的欄位,必須是男或者女這就是個約束;用check 約束
還有比如成績欄位應該在[0,100],這就需要用 beteen .... and 約束
等等,還有好多.
SQL約束是SQL資料庫中非常重要的部分,下面介紹的幾個SQL語句用於SQL約束控制,希望可以讓您對SQL約束有更深的認識。
1)禁止所有表SQL約束的SQL語句
select 'alter table '+name+' nocheck constraint all' fromwhere type='U'
2)刪除所有表數據的SQL
select 'TRUNCATE TABLE '+name from sysobjects '
3)恢復所有表SQL約束的SQL
select 'alter table '+name+' check constraint all' from type='U'
4)刪除某欄位的SQL約束
declare @name varchar(100)
--DF為約束名稱前綴
selectb.name from syscolumns a,sysobjects b where a.id=object_id('表名') and b.id=a.cdefault '欄位名' and b.name like 'DF%'
⑻ sql server如何在表上列中設置約束以020開頭
T-SQL代碼:
ALTERTABLE表名
ADDCONSTRAINT約束名CHECK(列名LIKE'020%')
例如:
CREATE TABLE Persons
(
P_Id varchar(255) NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Left(P_Id,3)='030')
)
(8)sql約束名擴展閱讀:
由於Internet的出現而帶來的全球數據訪問也同時增加了潛在的安全危險。對於資料庫的安全要求決不會比以前更高,而SQL Server7.0還沒有獲得任何類型的安全證書。相比之下,Oracle是唯一獲得最高認證級別的ISO標准認證的資料庫。
Oracle高級的安全特性考慮了強制實施的細小許可權,先進的審查,增強的訪問控制,安全的分布是處理與復制,以及使用附加的外部簽發機制的能力。SQL Server7.0沒有這些特性。
⑼ sql約束名,應該怎麼取,有什麼特殊規定嘛
沒有,只是個名字,不重復就可以,一般就用:P_表名,
⑽ SQL怎麼自定義約束
語法: ALTER TABLE 表名 ADD CONSTRAINT約束名約束類型 具體的約束聲明
約束名的取名規則推薦採用:約束類型_約束列,當然你也可以不這么命名,這樣單純是比較方便
如:主鍵(Primary Key)約束:PK_UserId
唯一(Unique key)約束: UQ_UserCardId
默認(Default Key)約束 DF_UserPasswd
檢查(Check Key)約束 CK_Gender
外鍵(Foreign Key)約束: FK_SortId
--以上加棕色段是我定義表中的列名稱
打個比方:add constraint PK_UserId PRIMARY KEY (UserId)
--PK_UserId 是自定義約束名 , PRIMARY KEY 是約束類型, (UserId)是具體的約束聲明