日期:2014-05-18  浏览次数:20502 次

这两句什么意思
IF OBJECT_ID(N'[dbo].[FK_ClassStudent]', 'F') IS NOT NULL
  ALTER TABLE [dbo].[T_Student] DROP CONSTRAINT [FK_ClassStudent];
GO
IF OBJECT_ID(N'[dbo].[FK_ClassTeacher]', 'F') IS NOT NULL
  ALTER TABLE [dbo].[T_Teacher] DROP CONSTRAINT [FK_ClassTeacher];
GO

这两句什么意思???怎样判断的,删除了什么约束???

------解决方案--------------------
看字面意思是删除表的外键约束,
OBJECT_ID(‘对象名称’)是系统函数,返回系统sysobjects中的对象id,
对象可以是表,视图,函数,存储过程,索引,约束等等object!
------解决方案--------------------
判断约束名是否存在,如果存在就删除相关约束
------解决方案--------------------
SQL code

IF OBJECT_ID(N'[dbo].[FK_ClassStudent]', 'F') IS NOT NULL
  ALTER TABLE [dbo].[T_Student] DROP CONSTRAINT [FK_ClassStudent];
GO
如果...不为空,删除...
下同
‘引号里的’内容可以是表明,函数名,触发器,约束等
IF OBJECT_ID(N'[dbo].[FK_ClassTeacher]', 'F') IS NOT NULL
  ALTER TABLE [dbo].[T_Teacher] DROP CONSTRAINT [FK_ClassTeacher];
GO