
mysql语句转换为sqlserver2005语句
altertableorder_detailaddconstraintFK_Relationship_1foreignkey(book_id)referencesbook...
alter table order_detail add constraint FK_Relationship_1 foreign key (book_id)
references book (id) on delete restrict on update restrict;
放在sqlserver2005运行一下就知道了,最后restrict附近有语法错误。 展开
references book (id) on delete restrict on update restrict;
放在sqlserver2005运行一下就知道了,最后restrict附近有语法错误。 展开
展开全部
SQL Server 的语法如下:
ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
指定如果已创建表中的行具有引用关系,并且被引用行已从父表中删除,则对这些行采取的操作。默认值为 NO ACTION。
NO ACTION
数据库引擎将引发错误,并回滚对父表中行的删除操作。
CASCADE
如果从父表中删除一行,则将从引用表中删除相应行。
SET NULL
如果父表中对应的行被删除,则组成外键的所有值都将设置为 NULL。若要执行此约束,外键列必须可为空值。
SET DEFAULT
如果父表中对应的行被删除,则组成外键的所有值都将设置为默认值。若要执行此约束,所有外键列都必须有默认定义。如果某个列可为空值,并且未设置显式的默认值,则将使用 NULL 作为该列的隐式默认值。
MySQL 里面的 on delete restrict
切换到 SQL Server , 可以切换为 ON DELETE NO ACTION
也可以不写,因为 默认值为 NO ACTION。
ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }
指定如果已创建表中的行具有引用关系,并且被引用行已从父表中删除,则对这些行采取的操作。默认值为 NO ACTION。
NO ACTION
数据库引擎将引发错误,并回滚对父表中行的删除操作。
CASCADE
如果从父表中删除一行,则将从引用表中删除相应行。
SET NULL
如果父表中对应的行被删除,则组成外键的所有值都将设置为 NULL。若要执行此约束,外键列必须可为空值。
SET DEFAULT
如果父表中对应的行被删除,则组成外键的所有值都将设置为默认值。若要执行此约束,所有外键列都必须有默认定义。如果某个列可为空值,并且未设置显式的默认值,则将使用 NULL 作为该列的隐式默认值。
MySQL 里面的 on delete restrict
切换到 SQL Server , 可以切换为 ON DELETE NO ACTION
也可以不写,因为 默认值为 NO ACTION。
参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/969f70fa84e2873e5d600821.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我记得 我用的时候 好像不要改什么
追问
你放在sqlserver2005运行一下就知道了,最后restrict附近有语法错误。
追答
额 我用的是2000 擦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询