sqlclr - 为 CLR 函数设置 SCHEMABINDING 和 IsDeterministic

标签 sqlclr sql-server-2012

我有一个与 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 语句来设置这些选项?

最佳答案

您必须在函数代码本身中设置 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/

相关文章:

c++ - 具有非托管代码的 CLR SP

c# - 使用 CLR 存储过程可以解决哪些好问题?

visual-studio-2012 - SQL Server 生成的代码被 Visual Studio 声称是错误的?

c# - 添加用于测试的 localdb

c# - 在单个 SQLCLR 上下文连接中运行 1000-10000 个命令是否更好?

c# - 在 MS SQL Server 2008 中加入 "best"匹配的好方法是什么?

sql-server - SQL Server计划缓存突然发生异常

SQL Server - PIVOT - 两列转换为行

sql - 如何给SQL CLR函数添加注释?

sql-server - SQL Server 2012维护计划错误