SQL Server 2005:由于不确定性,因此无法保留列

时间:2019-01-16 10:16:19

标签: sql sql-server tsql sql-server-2005

我有一个表,该表具有根据函数(eigenclass)的结果计算出的字段(Test),并且我希望使其成为MyFunctionTest并添加性能改进的索引,例如:

PERSISTED

CREATE TABLE [dbo].[TestTable] ( [Id] [int] IDENTITY(1,1) NOT NULL, [Foo] [int] NOT NULL, [Test] AS ([dbo].[MyFunctionTest]([Foo])) PERSISTED, CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED ( [Id] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 是:

MyFunctionTest

但是,保存时的sql server 2005显示错误

  

表'Tmp_TestTable'中的计算列'Test'不能为   之所以持续存在,是因为该列是不确定的。

为什么ALTER FUNCTION [dbo].[MyFunctionTest] ( @foo int ) RETURNS int AS BEGIN RETURN @foo * 2 END 不确定?

解决方案

在功能中添加具有SCHEMABINDING 功能

MyFunctionTest

0 个答案:

没有答案