读书人

请教这样设置级联操作为什么报错

发布时间: 2012-10-19 16:53:36 作者: rapoo

请问,这样设置级联操作,为什么报错?
ALTER TABLE 客户表
ADD PRIMARY KEY(客户编号)
on update cascade
on delete cascade


添加客户表的主键,并设置级联操作,为什么报错呢?

[解决办法]
你可以查一下联机丛书上的例子和注意事项嘛。
[解决办法]
PRIMARY KEY?你1楼的是主键,3楼的是外键,

主键外键你要分清楚,找本基础的书看看吧。
[解决办法]
主键和外键的差异很大的!
[解决办法]

SQL code
on update cascade   on delete cascade  是定义在 从表上的非 主表。给你个案例create table a   (id varchar(20) primary key,password varchar(20) not null)  create table b   (id int identity(1,1) primary key, name varchar(50) not null, userId varchar(20), foreign key (userId) references a(id) on delete cascade )  -- 表B创建了外码userId 对应A的主码ID,声明了级联删除   测试数据:   insert a values ('11','aaa')   insert a values('23','aaa')   insert b values('da','11')   insert b values('das','11')   insert b values('ww','23')   --删除A表内id为'11'的数据,发现B表内userId 为“11”也被数据库自动删除了,这就是级联删除   delete a where id='11'--drop table a--drop table b
[解决办法]
主键何来级联操作?只有外键才存在这个概念。
[解决办法]
探讨

主键何来级联操作?只有外键才存在这个概念。

[解决办法]


级联操作是针对外键吧
[解决办法]
探讨

但是在订单明细表中,设置级联操作,就正常:

ALTER TABLE 订单明细表
ADD FOREIGN KEY(订单编号) REFERENCES 订单表(订单编号)
on update cascade
on delete cascade



什么原因?
http://msdn.microsoft.com/zh-cn/library/ms186973(v=sql.10……

读书人网 >SQL Server

热点推荐