MS Access 将级联到空约束设置为现有表

pec*_*pec 4 sql ms-access relationship

使用由 vb.net 应用程序访问的 MS Acess 2007 数据库,我有两个现有表

Members
-------
ID     name     bandID
-----------------------
0      Pierre   1
1      Chart    3
2      John     3
3      Dave     2  

Bands
-----
ID     bandName
----------------
1      Band a
2      Band b
3      Band c
Run Code Online (Sandbox Code Playgroud)

我想为members.bandId 和bands.ID 之间的关系添加一个级联到空约束

这就是我所拥有的

ALTER TABLE members ADD CONSTRAINT membresBands_FK
    FOREIGN KEY (bandID) REFERENCE Bands(ID) ON DELETE CASCADE SET NULL
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

CONSTRAINT 子句中的语法错误

从 msdn 我发现

CREATE TABLE Orders 
  (OrderId INTEGER PRIMARY KEY, 
  CustId INTEGER, 
  OrderNotes NCHAR VARYING (255), 
  CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) 
  REFERENCES Customers ON UPDATE SET NULL ON DELETE SET NULL
Run Code Online (Sandbox Code Playgroud)

是否可以更改 MS Access 中的表以将关系设置为级联为空?

谢谢!

Bri*_*ire 5

可以在 Access 中创建这种约束,但只能通过 Jet OLE DB 提供程序和 ADO。例如,对于 Access 中的数据库,您可以通过运行以下 VBA 代码来创建约束:

CurrentProject.Connection.Execute "ALTER TABLE membres ADD CONSTRAINT membresBands_FK FOREIGN KEY (bandID) REFERENCES bands(ID) ON DELETE SET NULL"
Run Code Online (Sandbox Code Playgroud)