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

更改table的條件約束出現問題求解
小弟建了一張table 日常用語語句表 想要把這張表的<語句數量>欄建的Primary key改成UNIQUE
把<你說什麼>欄建的UNIQUE改成Primary key
下了以下的指令


SQL code

alter table 日常用語語句表_語句數量
DROP CONSTRAINT PK_日常用語語句表_語句數量 
alter table 日常用語語句表_你說什麼
DROP CONSTRAINT UQ_日常用語語句表_你說什麼
alter table 日常用語語句表_你說什麼
ADD CONSTRAINT  UQ_日常用語語句表_你說什麼 Primary key
alter table 日常用語語句表_語句數量
ADD CONSTRAINT  PK_日常用語語句表_語句數量  UNIQUE
GO



可是出現了兩條錯誤信息

訊息 8135,層級 16,狀態 0,行 5
資料表層級的條件約束並未指定資料表 '日常用語語句表_你說什麼' 的資料行清單。
訊息 8135,層級 16,狀態 0,行 7
資料表層級的條件約束並未指定資料表 '日常用語語句表_語句數量' 的資料行清單。

請問這部分的代碼要如何更動?


------解决方案--------------------
alter table tbname drop constraint 约束名 --约束名可以在 use 数据库名 go sp_help 表明中找到! 你表表名用中文,又用繁体字我这看不懂! 不过删除主键约束的时候是不是要把外键约束先删除! 添加约束的时候不一样! 你这些约束添加到那个列上都没有指定 
alter table 日常用語語句表_你說什麼
ADD CONSTRAINT UQ_日常用語語句表_你說什麼 Primary key
alter table 日常用語語句表_語句數量
ADD CONSTRAINT PK_日常用語語句表_語句數量 UNIQUE
GO


--没有指定要添加约束的列名! 约束不是建在表上的。。是建立在列上的