3

我有一个与 SQL Server 2012 一起使用的现有 C# CLR 运行时函数。我想在此函数上设置IsDeterministicSCHEMABINDING选项,以便我可以使用它来持久化表中的计算列。

这是更改语句:

ALTER FUNCTION [dbo].[authorityFromURI](@URI [nvarchar](4000))
RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [KDPSqlServerProject].[UserDefinedFunctions].[authorityFromURI]

应该如何修改这个 alter 语句来设置这些选项?

4

1 回答 1

4

您必须在函数代码本身内设置 IsDeterminstic 属性,例如

[SqlFunction(IsDeterministic = true, IsPrecise = true [...])]

使其成为模式绑定:

RETURNS NVARCHAR(4000)
WITH SCHEMABINDING, EXECUTE AS CALLER

也就是说,我还没有测试这些选项和持久性......

于 2012-06-06T04:52:06.670 回答