消息 156,级别 15,状态 1,第 9 行 关键字 'restrict' 附近有语法错误。

USESchoolaltertablechoicesdrop[FK_CHOICES_STUDENGTS];altertablechoicesaddCONSTRAINT[F... USE School
alter table choices drop [FK_CHOICES_STUDENGTS];
alter table choices add
CONSTRAINT [FK_CHOICES_STUDENGTS] FOREIGN KEY
(
[sid]
)REFERENCES[dbo].[STUDENGTS](
[sid]
)on delete restrict;
求各位大侠帮帮忙。
展开
 我来答
wangzhiqing999
2011-05-31 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3564万
展开全部
SQL Server 外键约束 好像 只有
DELETE CASCADE / UPDATE CASCADE / SET NULL

语法是
[ FOREIGN KEY ]
REFERENCES referenced_table_name [ ( ref_column ) ]
[ ON DELETE { NO ACTION | CASCADE } ]
[ ON UPDATE { NO ACTION } ]
[ NOT FOR REPLICATION ]

并没有 on delete restrict 这种写法.
因为如果你什么都不写,就是自动默认为 限制删除 与限制更新的.

通过使用级联引用完整性约束,您可以定义当用户试图删除或更新现有外键指向的键时,SQL Server 执行的操作。

CREATE TABLE 语句和 ALTER TABLE 语句的 REFERENCES 子句支持 ON DELETE 子句和 ON UPDATE 子句。还可以使用“外键关系”对话框定义级联操作:

[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

如果没有指定 ON DELETE 或 ON UPDATE,则默认为 NO ACTION。

ON DELETE NO ACTION
指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 DELETE 语句。

ON UPDATE NO ACTION
指定如果试图更新某一行中的键值,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 UPDATE 语句。

参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/969f70fa84e2873e5d600821.html

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式