当我运行这个SQL时:
IF EXISTS
(select a.id, a.name ,b.name
from sysobjects a, sysobjects b, sysconstraints c
where a.name = 'my_index_name'
and b.name = 'my_table'
and a.id = c.constid
and c.id = b.id)
BEGIN
ALTER TABLE my_table
DROP CONSTRAINT my_index_name
END
...它一直运行直到取消,此时SSMS发出错误:
Msg 3727, Level 16, State 0, Line 9
Could not drop constraint. See previous errors.
我尝试将约束更改为NOCHECK,但它已经是。我分别运行查询的存在检查部分,索引确实存在。
我有足够的SQL知识能够从sysconstraints和sysobjects中删除约束,但我想知道这是否会破坏我的数据库(特别是,我想知道以后尝试重新创建相同索引名称的SQL是否会失败由于剩余的磁盘文件/ SQL Server管理的数据。)
有没有办法实际“看到以前的错误”(因为SSMS中没有可见的)?
答案 0 :(得分:0)
这个问题没有实际意义,正如Sean Lange指出的那样:
Msg 259,Level 16,State 1,Line 1 不允许对系统目录进行临时更新。