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

zhaozhao110 2008-03-18 11:07:48
提示无法创建索引,因为键列 'flagtime' 不具有确定性或不精确
...全文
87 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
-晴天 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
  • 打赏
  • 举报
回复
用触发器检查

34,590

社区成员

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

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