カスタム関数があり、この関数を使用して永続列を作成しようとしています。
次のエラーが発生します。
テーブル 'SomeTable' の計算列 'FormattedSSN' は非決定論的であるため、保存できません。
関数は次のとおりです。
ALTER FUNCTION [dbo].[FormatSSN]()
RETURNS VARCHAR(11)
AS
BEGIN
return '';
END
関数を使用して列を追加するクエリは次のとおりです。
ALTER TABLE SomeTable
ADD FormattedSSN as dbo.FormatSSN() PERSISTED
何か解決策があれば提案してください。よろしくお願いします。
ベストアンサー1
追加スキーマバインディング付き関数は次のようになります:
ALTER FUNCTION [dbo].[FormatSSN]
(
@SSN VARCHAR(9)
)
RETURNS CHAR(11)
WITH SCHEMABINDING
AS
BEGIN
your stuff here
END
次にこれを実行して確認します。
IF OBJECTPROPERTY (OBJECT_ID(N'[dbo].[FormatSSN]'),'IsDeterministic') = 1
PRINT 'Function is detrministic.'
ELSE IF OBJECTPROPERTY (OBJECT_ID(N'[dbo].[FormatSSN]'),'IsDeterministic') = 0
PRINT 'Function is NOT detrministic'
GO
ここで働いています。