您想知道如何在Access 2003中使用ON UPDATE CASCADE/ON DELETE CASCADE,ON UPDATE SET NULL/ ON DELETE SET NULL嗎?

您想知道如何在Access   2003中使用ON   UPDATE   CASCADE/   ON   DELETE   CASCADE,ON   UPDATE   SET   NULL/   ON   DELETE   SET   NULL。  
      
  根據我的測試,ON   UPDATE   CASCADE/   ON   DELETE   CASCADE   能夠在adp   數據庫和ANSI92   mdb數據庫中正常使用,然而,ON   UPDATE   SET   NULL/   ON   DELETE   SET   NULL在adp   數據庫和ANSI92   的mdb數據庫中都提示語法錯誤。  
      
  以下的信息供您參考:  
      
  第一步:把mdb數據庫設爲ANSI92數據庫  
  =========================  
  1.   打開mdb數據庫  
  2.   點擊Tools   ->   Options   ->   Tables/Queries   ->   SQL   Server   Compatible   Syntax   (ANSI92)   ->   This   database   ->   OK.    
      
      
      
  第二步:在adp   或ANSI92   mdb數據庫中使用ON   UPDATE   CASCADE/   ON   DELETE   CASCADE:  
      
  方法一:在Query   Designer   中創建存儲過程  
  -----------------------------------------------  
  1.   打開adp   數據庫。  
  2.   點擊Objects   下的Queries  
  3.   創建一個新的存儲過程StoredProcedure1,   切換到SQL   View.   輸入以下代碼:  
      
  Create   PROCEDURE   StoredProcedure1  
      
  AS  
      
  CREATE   TABLE   Customers   (CustId   INTEGER   PRIMARY   KEY,   CLstNm   NCHAR   VARYING(50))  
      
  RETURN    
      
  4.   創建新的存儲過程StoredProcedure2,   切換到SQL   View.   輸入以下代碼:  
      
      
  CREATE   PROCEDURE   StoredProcedure2  
  AS  
                        
  CREATE   TABLE   Orders   (OrderId   INTEGER   PRIMARY   KEY,   CustId   INTEGER,   OrderNotes   NCHAR   VARYING   (255),   CONSTRAINT   FKOrdersCustId   FOREIGN   KEY   (CustId)   REFERENCES   Customers   ON   UPDATE   CASCADE   ON   DELETE   CASCADE)  
      
  RETURN    
      
  注意:   如果是mdb   數據庫,那應該創建兩個新的Query.  
      
  Query1   爲以下代碼:  
      
  CREATE   TABLE   Customers   (CustId   INTEGER   PRIMARY   KEY,   CLstNm   NCHAR   VARYING(50))  
      
  Query2   爲以下代碼:  
      
  CREATE   TABLE   Orders   (OrderId   INTEGER   PRIMARY   KEY,   CustId   INTEGER,   OrderNotes   NCHAR   VARYING   (255),   CONSTRAINT   FKOrdersCustId   FOREIGN   KEY   (CustId)   REFERENCES   Customers   ON   UPDATE   CASCADE   ON   DELETE   CASCADE)  
      
      
      
  方法二:創建新的module   並輸入以下代碼:  
  ------------------------------------------  
      
  Function   test()  
                                
      
                        Dim   sqlstr   As   String  
      
                        Dim   conn   As   ADODB.Connection  
      
                        Set   conn   =   CurrentProject.Connection  
                            
      
                          sqlstr1   =   "   CREATE   TABLE   Customers1   (CustId   INTEGER   PRIMARY   KEY,   CLstNm   NCHAR   VARYING(50))"  
      
                          sqlstr2   =   "CREATE   TABLE   Orders1   (OrderId   INTEGER   PRIMARY   KEY,   CustId   INTEGER,   OrderNotes   NCHAR   VARYING   (255),   CONSTRAINT   FKOrdersCustId1   FOREIGN   KEY   (custid)   REFERENCES   customers1   ON   UPDATE   CASCADE   ON   DELETE   CASCADE   )"  
      
      
                          conn.Execute   sqlstr1  
                            
                          conn.Execute   sqlstr2  
                            
      
                          Application.RefreshDatabaseWindow  
      
                          conn.Close  
      
  End   Function  
      
  我將會繼續測試ON   UPDATE   SET   NULL/   ON   DELETE   SET   NULL.   如果有新的進展,   我會盡早讓您知道.    
  [/CHAPTER]  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章