sql server中给一个表中的字段设置外键时,出现“表State中的列与现有主键或UNIQUE约束不匹配”

表State有两个字段:(sID,sName)其中sID是主键,sName设置成UNIQUE我想让表User中的uState字段参照State表中的sName字段,我知道... 表State有两个字段:(sID,sName)其中sID是主键,sName设置成UNIQUE
我想让表User中的uState字段参照State表中的sName字段,我知道如果参照State中的sID字段是可以的,但是因为某些原因参照sName字段效率会高一些(我记得只要字段唯一,即使不是主键也可以做外键的),但是我创建外键时就会弹出 “表State中的列与现有主键或UNIQUE约束不匹配” ,我专门看了State表,其中的主键无重复,设置成UNIQUE的字段也无重复。User表中的uName也都是属于State中的sName字段中的值,求大神给解决一下啊!谢谢大家~
后面一句话错了。。。。应该是 User表中的uState也都是属于State中的sName字段中的值
展开
 我来答
szm341
2015-02-02 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5148万
展开全部
看一下user表中是否存在State中的sName字段中不存在的值
如果存在,删掉/修改数据 或者创建外键的时候选中with nocheck
追问
看了,都是State中的sName字段中存在的值
追答
刚刚测了一下,你外键的列选多了吧
每个外键约束关系是一组对应关系,即一个主键/唯一键对应一个外键列
或一个联合主键/唯一键对应一个联合外键列
你出现的这个错误,可能是同时选择了主键与唯一键两个列去创建的外键关系
无效的_用户名
2015-02-02
知道答主
回答量:2
采纳率:0%
帮助的人:2.3万
展开全部
可以试试建两个新表 无数据的 先设置好再加入数据
更多追问追答
追问
一样。。。会不会2012不支持啊?
追答
新建的表设置的时候 提示的 还是添加数据时?

你的user表的ustate字段与sname字段属性是否一样 比如int、char[10]

确定sname是唯一索引吗
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式