错误说明:无法对表 '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。
在该数据库中,已经存在这一个索引定义。但不知怎么能够生成这个索引。我删除该索引后,重新建立相同的索引却报错。
请赐教。
自定义标量函数 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。
在该数据库中,已经存在这一个索引定义。但不知怎么能够生成这个索引。我删除该索引后,重新建立相同的索引却报错。
请赐教。
计算列中的所有函数引用必须与表具有相同的所有者。然而 AdventureWorks 中怎么会这个么一个索引的呢?
当然只要把那个函数的架构也设为 Sales,就不报错了。我弄不明白,为什么 AdventureWorks 里居然会那个索引以合法的方式存在?
难道无人研究这个数据库,到 SQLSERVER 数据库版中提问,居然无人问津,除了坐沙发的。