读书人

创建索引失败不知如何避免

发布时间: 2012-01-11 22:28:46 作者: rapoo

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

无法对表 '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

[解决办法]
关注,帮顶
[解决办法]
先把函数导出,删除后再建,建完索引再重建函数

读书人网 >SQL Server

热点推荐