34,590
社区成员
发帖
与我相关
我的任务
分享
--你上面的那些做法, 没有给定唯一约束的名称,后面要删除会比较麻烦, 建议如下:
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL DROP TABLE t
GO
CREATE TABLE t (id INT PRIMARY KEY,id2 INT)
GO
--删除约束
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N't') AND name = N'UQ_t_id2')
BEGIN
ALTER TABLE t DROP CONSTRAINT UQ_t_id2
END
GO
--增加约束
IF NOT EXISTS (SELECT * FROM sys.sysconstraints AS s WHERE s.constid=OBJECT_ID('UQ_t_id2'))
BEGIN
ALTER TABLE t ADD CONSTRAINT UQ_t_id2 UNIQUE (id2)
END
USE [K3]
GO
IF EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[Persons]') AND name = N'UQ__Persons__B87EA51D5DFE0F9E')
ALTER TABLE [dbo].[Persons] DROP CONSTRAINT [UQ__Persons__B87EA51D5DFE0F9E]
GO
ALTER TABLE Persons
ADD UNIQUE(ID_P)
DROP INDEX ID_P ON persons