我有一个与 SQL Server 2012 一起使用的现有 C# CLR 运行时函数。我想在此函数上设置 IsDeterministic
和 SCHEMABINDING
选项,以便我可以用它来持久化表中的计算列。
这是修改语句:
ALTER FUNCTION [dbo].[authorityFromURI](@URI [nvarchar](4000))
RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [KDPSqlServerProject].[UserDefinedFunctions].[authorityFromURI]
应该如何修改这个 alter 语句来设置这些选项?
最佳答案
您必须在函数代码本身中设置 IsDeterminstic 属性,例如
[SqlFunction(IsDeterministic = true, IsPrecise = true [...])]
使其模式绑定(bind):
RETURNS NVARCHAR(4000)
WITH SCHEMABINDING, EXECUTE AS CALLER
也就是说,我还没有测试这些选项以及持久性......
关于sqlclr - 为 CLR 函数设置 SCHEMABINDING 和 IsDeterministic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10907747/