我有桌友,定义为
UserId int PrimaryKey
OtherUserId int PrimaryKey
目前,我有以下数据
UserId OtherUserId
1 2
我不想要像
这样的重复名单UserId OtherUserId
2 1
如何使用SQL Server实现此功能?
答案 0 :(得分:1)
您可以通过添加计算列然后添加唯一索引来执行此操作:
alter table friends UserId_least as (case when UserId < OtherUserId then UserId else OtherUserId end);
alter table friends UserId_greatest as (case when UserId < OtherUserId then OtherUserId else UserId end);
create unique index unq_friends_least_greatest
on friends(UserId_least, UserId_greatest);
答案 1 :(得分:1)
你的问题有点宽泛。请注意,每张桌子只能有一个主键,因为它是身份证明。至于数据,您可以尝试使用自动增量而不是null以避免重复的答案。