如果在一个计算列上创建索引?该计算列是根据一个函数获得的
表 
 ID   自动增加 
 FeedBackID   计算列,dbo.GetFeedBackID(ID) 
 函数:dbo.GetFeedBackID实际上就是取ID的后9位(不足补0,然后逐位加,其和的个位数就是第10位 
 实际应用中,要求FeedBackID唯一,所以我就用此方法保证FeedBackID   唯一   
 CREATE   FUNCTION   dbo.GetFeedBackID   (@ID   int)       
 RETURNS   nvarchar(10)      AS       
 ... 
 return   @FeedID 
 END   
 平时查询对FeedBackID   较多,所以需要创建索引 
 创建索引一开始提示   创建对象失败,没有设置   ANSI_NULLs 
 我通过Set选项   Alter后,现在又报 
  'ACC_DATA_TABLE '   表 
 -   不能创建索引    'IX_ACC_DATA_TABLE '。       
 ODBC   错误:   [Microsoft][ODBC   SQL   Server   Driver][SQL   Server]无法创建索引,因为键列    'FeedBackID '   不具有确定性或不精确。 
 [Microsoft][ODBC   SQL   Server   Driver][SQL   Server]未能创建约束。请参阅前面的错误信息。     
 怎么解决,还是SQLSERVER根本不支持计算公式依赖于函数的?   
------解决方案--------------------這樣行不通的,计算列不能建立索引 
 考慮將ID作為主鍵,應該可以提高效率吧 
------解决方案----------------------当计算列上引用了函数时,是不能建立索引的,楼主可以按下面方法实现计算列建索引 
 create table tb(id int ,col as right(1000000000+id,9) ) 
 create  unique index id_col on tb(col) 
 insert into tb values(1) 
 insert into tb values(11) 
 insert into tb values(111) 
 select * from tb 
 drop table tb