日期:2014-05-18  浏览次数:20583 次

创建索引失败,不知如何处理。
错误说明:

无法对表   'Customer '   的计算列   'AccountNumber '   创建索引,因为基础对象   'ufnLeadingZeros '   的所有者不同。


自定义标量函数   ufnLeadingZeros   的定义如下:

ALTER   FUNCTION   [dbo].[ufnLeadingZeros](
        @Value   int
)  
RETURNS   varchar(8)  
WITH   SCHEMABINDING  
AS  
BEGIN
        DECLARE   @ReturnValue   varchar(8);

        SET   @ReturnValue   =   CONVERT(varchar(8),   @Value);
        SET   @ReturnValue   =   REPLICATE( '0 ',   8   -   DATALENGTH(@ReturnValue))   +   @ReturnValue;

        RETURN   (@ReturnValue);
END;

表   'Customer '的架构为   Sales。
表   'Customer '   的计算列   'AccountNumber '   的公式如下:
(isnull( 'AW '+[dbo].[ufnLeadingZeros]([CustomerID]), ' '))

以上信息来自于   SQL   SERVER   2005     示例数据库   AdventureWorks。
在该数据库中,已经存在这一个索引定义。但不知怎么能够生成这个索引。

我删除该索引后,重新建立相同的索引却报错。
请赐教。

------解决方案--------------------
mark

------解决方案--------------------
关注,帮顶
------解决方案--------------------
先把函数导出,删除后再建,建完索引再重建函数