成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server使用檢查約束來驗證數據實戰演示

數據庫 SQL Server
如果你是SQL Server使用檢查約束來驗證數據方面的新手,對SQL Server使用檢查約束來驗證數據的相關實際應用不是很了解的話,以下的文章會給你提供更全面的知識。

以下文章主要是介紹在SQL Server使用檢查約束來驗證數據的實際操作步驟,以及對其在實際操作中要用到的一些事項的描述,下面的文章就是對SQL Server使用檢查約束來驗證數據的實際操作步驟的相關內容的具體介紹。

什么是檢查約束?

檢查約束是一個規則,它確認一個SQL Server表中某條記錄中的數據可接受的字段值。檢查約束幫助執行域完整性。域完整性定義了一個數據庫表中字段的有效值。檢查約束可以驗證一個單獨字段或一些字段的域完整性。你對一個單獨的字段可以有多個檢查完整性。假如被插入或更新的數據違反了一個檢查約束,那么數據庫引擎將不答應這個插入或更新的操作發生。

 

創建檢查約束

1 創建字段級別的檢查約束

  1. CREATE TABLE CHECKTABLE(  
  2. pid INT PRIMARY KEY,  
  3. cname VARCHAR(500) NOT NULL,  
  4. age INT,  
  5. CHECK(age>0)  

這是一個字段級別的約束。這個檢查約束只答應age字段大于0。當我的表創建之后,這個CHECK約束也將被創建,并被賦予一個系統生成的約束名稱。

假如你想在一個CREATE TABLE操作期間命名你的檢查約束,那么你可以運行下面的代碼:

  1. CREATE TABLE CHECKTABLE(  
  2. pid INT PRIMARY KEY,  
  3. cname VARCHAR(500) NOT NULL,  
  4. age INT,  
  5. CONSTRAINT CK_CheckTable_Age CHECK(age>0)  

一個檢查約束表達式可以有多個條件。下面是一個例子,它顯示了一個有多個條件的檢查約束:

  1. CREATE TABLE CHECKTABLE(  
  2. pid INT PRIMARY KEY,  
  3. cname VARCHAR(500) NOT NULL,  
  4. age INT,  
  5. CONSTRAINT CK_CheckTable_Age CHECK(age>0 AND age<100)  

SQL Server使用檢查約束來驗證時假如你想創建一個表級別的檢查約束,那么你可以運行下面的代碼:

  1. CREATE TABLE CHECKTABLE(  
  2. pid INT PRIMARY KEY,  
  3. cname VARCHAR(500) NOT NULL,  
  4. age INT,  
  5. sex BIT,  
  6. CHECK(age>0 AND age<100 AND sex IN (0,1))  

有時,在你設計和創建了一個表后,你想對一個表添加一個檢查約束。這可以通過使用ALTER TABLE 語句來完成:

  1. ALTER TABLE CHECKTABLE  
  2. WITH NOCHECK ADD CONSTRAINT CK_CheckTable_Sex  
  3. CHECK (sex IN (0,1));  
  4. ALTER TABLE CHECKTABLE  
  5. WITH NOCHECK ADD CONSTRAINT CK_CheckTable_Sex  
  6. CHECK (sex IN (0,1) AND cname IN ('zy','zs'));  

你可以使用一個單獨的ALTER TABLE語句來一次添加多個檢查約束到你的表中:

  1. ALTER TABLE CHECKTABLE  
  2. WITH NOCHECK ADD CONSTRAINT CK_CheckTable_Sex  
  3. CHECK (sex IN (0,1)),  
  4. CONSTRAINT CK_CheckTable_Sex  
  5. CHECK (cname IN ('zy','zs')); 

比較特別是的,字段中的NULL值可能答應你輸入數據到你的數據庫中,而這并不滿足你的需求。

  1. ALTER TABLE CHECKTABLE  
  2. WITH NOCHECK ADD CONSTRAINT CK_CheckTable_Sex  
  3. CHECK (sex IN (0,1)),  
  4. CONSTRAINT CK_CheckTable_Sex  
  5. CHECK (cname IN ('zy','zs')); 

針對該約束,INSERT INTO CHECKTABLE(pid,cname,age,sex) VALUES(1,NULL,12,1) 該SQL語句是起作用的。這是因為NULL值用在比較操作中時,它被當作UNKNOWN。因為UNKNOWN不是FALSE,所以沒有違反檢查約束。因此,當你編寫你的檢查約束時,你需要對需要拒絕包含NULL值的地方很謹慎。上面的代碼應該改為:

  1. ALTER TABLE CHECKTABLE  
  2. WITH NOCHECK ADD CONSTRAINT CK_CheckTable_Sex  
  3. CHECK (sex IN (0,1)),  
  4. CONSTRAINT CK_CheckTable_Sex  
  5. CHECK (cname IS NOT NULL AND cname IN ('zy','zs')); 

結論

通過SQL Server使用檢查約束,你可以確保你的數據庫只包含通過了約束的數據。這使得你可以讓數據庫引擎控制你的數據驗證。這么做將使得你的應用程序不需要在每個你希望插入一條記錄或更新一條記錄到一個表中的地方都寫數據驗證規則的代碼。檢查約束是執行數據驗證的一個簡潔方法。

【編輯推薦】

  1. SQL Server鏡像工作方式與實現方式
  2. SQL Server所有表的列信息展示
  3. 創建SQL Server全文檢索的2方案
  4. 實現SQL Server 2000全文索引遷移步驟
  5. SQL Server全文索引的實例演示

 

 

責任編輯:佚名 來源: 濟南時報
相關推薦

2009-04-15 13:21:03

微軟SQL Server約束

2010-05-27 18:30:56

MySQL 命令行導入

2010-07-14 09:41:26

SQL Server數

2010-11-12 14:55:59

Sql Server檢

2010-06-30 08:46:51

升級SQL Serve

2010-07-05 12:09:16

SQL Server

2010-07-09 11:34:51

SQL Server用

2010-06-18 10:25:49

SQL Server

2010-11-12 15:04:30

SQL Server缺

2010-07-16 14:17:18

SQL Server

2017-03-13 09:48:26

pysparkhive數據

2009-04-16 17:38:24

SQL Server 空間數據智能

2011-07-11 13:16:19

SQL TraceSQL Profile

2020-11-18 09:24:18

MySQL數據庫技術

2011-08-04 16:20:39

SQLServer數據索引碎片DBCC ShowCo

2013-07-30 16:54:32

2010-07-21 09:50:12

SQL Server子

2010-07-05 15:04:36

SQL Server刪

2010-07-30 14:38:25

DB2數據庫

2010-07-16 17:03:35

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄a网站 | 一级黄a视频 | 久久精彩视频 | 亚洲精品女人久久久 | 久久国产精品亚洲 | 91不卡 | 一区二区三区国产精品 | 亚洲精品一区二区三区在线 | 视频三区 | 精品成人 | 精品国产伦一区二区三区观看说明 | 日韩中文在线视频 | 久久久精品一区 | 午夜精品视频在线观看 | 精品国产综合 | 91精品国产91久久久久久 | 精品一区二区三区在线观看国产 | 国产伦精品一区二区三区高清 | 久久国产精品一区二区三区 | 又爽又黄axxx片免费观看 | 懂色av色香蕉一区二区蜜桃 | 懂色av色香蕉一区二区蜜桃 | 久久免费观看一级毛片 | 国产美女在线精品免费 | 一级黄色大片 | 在线视频中文字幕 | www久久av| 欧美一级淫片免费视频黄 | 狠狠亚洲 | 久久精品视频网站 | 国产精品99久久久久久动医院 | 日韩精品免费在线观看 | 伊人伊成久久人综合网站 | 日韩欧美网 | 在线成人免费视频 | 日韩一级免费大片 | 久草在线高清 | 欧美在线日韩 | 亚洲高清av | 免费在线视频精品 | 国产激情综合五月久久 |