1
計算列を永続化したいが、TRY_PARSEは私の関数を非決定的にする。それで何かできますか?代替品はありますか?代わりにTRY_PARSE関数が非決定性になる
CREATE FUNCTION [dbo].[F]
(
@input nvarchar(100)
)
RETURNS int
WITH SCHEMABINDING
AS
BEGIN
return TRY_PARSE(@input as INT)
END
SELECT OBJECTPROPERTY(OBJECT_ID('[dbo].[F]'), 'IsDeterministic')
は 'TRY_PARSE'は常に非決定的であるとの関数で、それのいずれかの使用は、それが非決定的なレンダリングします。あなたが何をしたいのかに応じて回避策があるかもしれません(もちろん 'TRY_PARSE'を使用しないことが最も明白ですが)、それはあなたのコンテキストに依存します。たとえば、CONVERTは決定的ですが、それは必要な変換を提供しない可能性があります。独自の変換をCLR関数として実装し、確定的にマークすることもできます。しかし、何のために機能はありますか? T-SQLの関数は、通常考えられるほどの半分ではありません。 –