sql2000怎么在公式列创建unique索引

zhaozhao110 2008-03-18 11:07:48
提示无法创建索引,因为键列 'flagtime' 不具有确定性或不精确
...全文
59 4 点赞 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
-晴天 2008-03-18
计算列设置索引的条件:
1.computed_column_expression 必须是确定性的。如果表达式对一组给定的输入总是返回同样的结果,则该表达式是确定性的。
2.执行 CREATE TABLE 语句时,必须将 ANSI_NULL 连接级选项设置为 ON。
3.为计算列定义的 computed_column_expression 不能取值为 text、ntext 或 image 数据类型。
4.对于创建索引的连接和所有尝试使用 INSERT、UPDATE 或 DELETE 语句更改索引值的连接,必须使六个 SET 选项设置为 ON,一个选项设置为 OFF。如果不具有上述选项设置的连接执行了任何 SELECT 语句,优化器将忽略计算列上的索引。
  • 打赏
  • 举报
回复
hlq8210 2008-03-18
为什么要在计算列上建唯一索引呢?
逻辑上是不是通不过
  • 打赏
  • 举报
回复
wzy_love_sly 2008-03-18

create table tb(a int,b int,c as a+b)
insert into tb(a,b) select 1,2

select * from tb

create unique index id_index on tb(c)

insert into tb(a,b) select 1,2


消息 2601,级别 14,状态 1,第 1 行
不能在具有唯一索引 'id_index' 的对象 'dbo.tb' 中插入重复键的行。
  • 打赏
  • 举报
回复
wzy_love_sly 2008-03-18
用触发器检查
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-18 11:07
社区公告
暂无公告