如何用sql語句創建具有多個主鍵(--聯合主鍵)的表阿


完全可以  
    
   create   table   tabCheck  
   (  
   check_id   int   not   null,  
   check_no   int   not   null,  
   startdate   datetime,  
   enddate   datetime  
   .......................  
      
   CONSTRAINT   [PK_tabCheck]   PRIMARY   KEY     CLUSTERED   (check_id,check_no)   ON   [PRIMARY]    
   --上面這句一定要用到  
   )    
    
   check_id,check_no是這個表的聯合主鍵

一個表只允許有一個主鍵  
    
   但一個主鍵可以允許由多個字段構成復合主鍵  
    
    
   所以樓主的寫法是不行的,用了多個主鍵  
   冒牌的可以,由多個字段構成一個主鍵  
    
    
   而一個表允許多個唯一鍵,所以如果僅僅是為了限制字段的記錄不重復的話,可以用一個主鍵,多個唯一鍵的方式.  


--如果樓主是要   paper_name+author_id   構成復合主鍵  
   create   table   paper   (  
   paper_name   varchar(50)   not   null,  
   author_id   char(10)   not   null,  
   constraint   PK_paper   primary   key(paper_name,author_id)   --復合主鍵  
   )  
    
    
   --如果樓主是要   paper_name   與   author_id   的值都不重復,則:  
   create   table   paper   (  
   paper_name   varchar(50)   not   null   primary   key,   --用主鍵做限制  
   author_id   char(10)   not   null   constraint   UQ_paper_author_id   unique   --用唯一鍵做限制  
   )  
    



我們在create table時經常會碰到這樣的語句,例如:CityName nvarchar(10)collate chinese_prc_ci_as null,那它到底是什么意思呢?不妨看看下面:



首先,collate是一個子句,可應用於數據庫定義或列定義以定義排序規則,或應用於字符串表達式以應用排序規則投影。



語法是collate collation_name



collation_name ::={windows_collation_name}|{sql_collation_name}



參數collate_name是應用於表達式、列定義或數據庫定義的排序規則的名稱。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name。



Windows_collation_name 是 Windows 排序規則的排序規則名稱。參見 Windows 排序規則名稱。
SQL_collation_name 是 SQL 排序規則的排序規則名稱。參見 SQL 排序規則名稱。



下面簡單介紹一下排序規則:



什么叫排序規則呢?MS是這樣描述的:"在 Microsoft SQL Server 2000 中,
字符串的物理存儲由排序規則控制。排序規則指定表示每個字符的位模式以及存
儲和比較字符所使用的規則。"
  在查詢分析器內執行下面語句,可以得到SQL SERVER支持的所有排序規則。



    select * from ::fn_helpcollations()



排序規則名稱由兩部份構成,前半部份是指本排序規則所支持的字符集。
如:
  Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指針對大陸簡體字UNICODE的排序規則。
排序規則的后半部份即后綴 含義:
  _BIN 二進制排序
  _CI(CS) 是否區分大小寫,CI不區分,CS區分
  _AI(AS) 是否區分重音,AI不區分,AS區分   
  _KI(KS) 是否區分假名類型,KI不區分,KS區分 
     _WI(WS) 是否區分寬度 WI不區分,WS區分 



區分大小寫:如果想讓比較將大寫字母和小寫字母視為不等,請選擇該選項。
區分重音:如果想讓比較將重音和非重音字母視為不等,請選擇該選項。如果選擇該選項,
         比較還將重音不同的字母視為不等。
區分假名:如果想讓比較將片假名和平假名日語音節視為不等,請選擇該選項。
區分寬度:如果想讓比較將半角字符和全角字符視為不等,請選擇該選項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM