3

SQL Server 2012で使用している既存のC#CLRランタイム関数があります。この関数IsDeterministicSCHEMABINDINGオプションを設定して、テーブル内の計算列を永続化するために使用できるようにします。

これがalterステートメントです:

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 に答える