3
我有一個現有的C#CLR運行時功能,我正在使用SQL Server 2012.我想設置此功能上的IsDeterministic
和SCHEMABINDING
選項,以便我可以使用它來保留計算在表中的列。爲CLR功能設置SCHEMABINDING和IsDeterministic
下面是ALTER語句:
ALTER FUNCTION [dbo].[authorityFromURI](@URI [nvarchar](4000))
RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [KDPSqlServerProject].[UserDefinedFunctions].[authorityFromURI]
如何把這個ALTER語句來修改設置這些選項?
我將我的c#代碼更改爲: 公共部分類UserDefinedFunctions { {Microsoft.SqlSe rver.Server.SqlFunction(IsDeterministic = true,IsPrecise = true)] public static SqlString authorityFromURI(SqlString URI) { {0}請注意,我不需要設置「with schemabinding」 – JonnyBoats
@JonnyBoats和Aaron:1)SCHEMABINDING不是SQLCLR函數的有效選項,2)雖然在這種特殊情況下它看起來不是問題(即獲得URI的權威性),應該注意的是,如果它們實際上只應該設置「IsDeterministic」,並且可以選擇「IsPrecise」爲「true」。如果你將它們設置爲「true」,但實際上它們不是,你會看到一些「奇怪」的行爲。 –