欢迎投稿

今日深度:

Could not drop object 'student' because it i

Could not drop object 'student' because it is referenced by a FOREIGN KEY constraint,constraint


1. Find foreign keys

SELECT * FROM sys.foreign_keys WHERE referenced_object_id = object_id('Student')

2. Delete foreign keys

SELECT     'ALTER TABLE ' +  OBJECT_SCHEMA_NAME(parent_object_id) +    '.[' + OBJECT_NAME(parent_object_id) +     '] DROP CONSTRAINT ' + nameFROM sys.foreign_keysWHERE referenced_object_id = object_id('Student')


SQL truncate表时提示外键错误

nocheck选项只对插入、更新记录有用,对truncate没有用,而且你禁用MRB_OrdersHeaders的外键是没用的,不能truncate的主要原因是MRB_OrdersHeaders表被其它表的外键引用了。
如果业务允许,把引用了MRB_OrdersHeaders表的其它表的相应外键都删掉。
如果需要保留那些外键,则把相应表里存在的记录都删除就行了。
比如MRB_OrdersHeaders表被A表引用,那么就先删除A表中的记录。因为可能涉及级联引用的问题,需要一级级的删除。
删除之后也是不能truncate的,只能delete
 

IF OBJECT_ID(N'STUDENT') IS NOT NULL DROP TABLE STUDENT GO 这是T-SQL语句,详细解释一下

这条语句是在判断是否有 STUDENT 这张表,如果有的话就删除!OBJECT_ID() 其实是一个系统函数用于返回对象标识号,因为在SQL-Server 中 在一个数据库中不存在相同的表名,而且每个表名都进行了ID标识 ,所以可以用这个函数来判断是否有某个对象的存在。
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3694.html NewsArticle Could not drop object student because it is referenced by a FOREIGN KEY constraint,constraint 1. Find foreign keys SELECT * FROM sys . foreign_keys WHERE referenced_object_id = object_id ( 'Student' ) 2. Delete foreign keys SELECT 'ALTER...
相关文章
    暂无相关文章
评论暂时关闭