一个约束问题

wofan 2003-11-05 11:50:34
我有一个表lsh,supid,htbh,sl,.....
lsh为主键,supid记录单位ID,htbh为订单号
记录中订单号对应着单位id,为唯一不能重复
lsh,supid,htbh
001,00123,0001
002,00123,0002
003,00124,0001
004,00124,0002
005,00123,0003

这样约束该怎样写,我是新手.希望高手写全,急用
...全文
43 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wofan 2003-11-05
  • 打赏
  • 举报
回复
还有一疑问,如果这个表中结构是这样的
lsh,supid,htbh
001,00123,0001
002,00123,空格
003,00124,0001
004,00124,空格
005,00123,空格

中间有空格的话,那就不好处理了
zjcxc 元老 2003-11-05
  • 打赏
  • 举报
回复
--筛选出重复记录
select supid,htbh,count(*) from 表 group by supid,htbh having count(*)>1
sdhdy 2003-11-05
  • 打赏
  • 举报
回复
你的主键上是聚集索引,而一个表里只能有一个聚集索引
所以你要:
CREATE UNIQUE INDEX FAHUO_asdfasdf_index ON FAHUO (supid,htbh)
zjcxc 元老 2003-11-05
  • 打赏
  • 举报
回复
clustered表明创建的是聚集索引,如果你的表中原来已经创建有聚集索引,就应该取消此项:
CREATE UNIQUE INDEX 表_supid_htbh_index ON 表 (supid,htbh)
wofan 2003-11-05
  • 打赏
  • 举报
回复
还问一下,我现有表中已经有重复了.我怎样选出来?
zjcxc 元老 2003-11-05
  • 打赏
  • 举报
回复
CREATE UNIQUE CLUSTERED INDEX 表_supid_htbh_index ON 表 (supid,htbh)
pengdali 2003-11-05
  • 打赏
  • 举报
回复
CREATE UNIQUE INDEX FAHUO_supid_htbh_index ON FAHUO (supid,htbh)
GO
wofan 2003-11-05
  • 打赏
  • 举报
回复
不能在表 'FAHUO' 上创建多个聚集索引。请在创建新聚集索引前除去现有的聚集索引 'PK_FAHUO'。

这是怎么回事?
pengdali 2003-11-05
  • 打赏
  • 举报
回复
CREATE UNIQUE CLUSTERED INDEX 表_supid_htbh_index ON 表 (supid,htbh)
GO
pengdali 2003-11-05
  • 打赏
  • 举报
回复
CREATE TRIGGER tr_FAHUO_in ON FAHUO
FOR INSERT
AS
if exists(select 1 from inserted where exists (select 1 from FAHUO where lsh not in (select lsh from inserted) and supid=inserted.supid and htbh=inserted.htbh))
rollback tran
go

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧