在access数据库中创建表和关系要使用:CONSTRAINT子句。这个字句中的ON UPDATE ON DELETE等命令在access的sql面板中是不支持的,需要使用ado去执行含有这些命令的语句才能通过。
如下列语句,创建了一个表,用于存放产品的图片,一个外键LR_ProductID引用主表LR_Products的LR_ProductID主键:
create table LR_ProductPics( LR_ProductPicID GUID Primary key, LR_ProductID GUID null, LR_ProductPicURL varchar(255), CONSTRAINT FK_LR_Product_Referance_Pics_LR_Products FOREIGN KEY (LR_ProductID) REFERENCES LR_Products ON UPDATE CASCADE ON DELETE CASCADE)
这个语句中的ON UPDATE CASCADE ON DELETE CASCADE,在access的sql面板中执行就不能通过,会提示“CONSTRAINT子句语法错误”。这时在c#中运用ado.net将上述命令执行就能正确通过。我想相应的修改表的主外键关系等操作,也应该是这个道理。