複雑な数式の評価が必要なストアド プロシージャがあります。数式があり、このストアド プロシージャはその値を評価します。
以下のように定義された UDF を呼び出します。
ALTER FUNCTION [dbo].[udfComputeMath]
(@inputString [NVARCHAR](MAX))
RETURNS [NVARCHAR](4000)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [SMP_Assembly].[SuperMathParser.MathParser].[ComputeMath]
これはかなり古いコードです。SQL Server 2008 R2 (少なくとも) 以降、2016 年までは問題なく動作していました。
ただし、DB を SQL Server 2017 に更新しようとしましたが、これは機能しなくなりました。
次のエラーが表示されます。
メッセージ 10314、レベル 16、状態 11、プロシージャ GetPermitTypeFeesByPermitID、行 88 [バッチ開始行 0]
アセンブリ ID 65536 を読み込もうとしているときに、Microsoft .NET Framework でエラーが発生しました。サーバーのリソースが不足しているか、アセンブリが信頼されません。クエリを再度実行するか、ドキュメントを確認して、アセンブリの信頼の問題を解決する方法を確認してください。このエラーの詳細については、次を参照してください。System.IO.FileLoadException: ファイルまたはアセンブリ 'supermathparser、Version=0.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。セキュリティに関するエラーが発生しました。(HRESULT からの例外: 0x8013150A) System.IO.FileLoadException:
System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName、文字列 codeBase、証拠 assemblySecurity、RuntimeAssembly locationHint、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、ブール値 throwOnFileNotFound、ブール値 forIntrospection、ブール値を抑制する SecurityChecks) で
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName assemblyRef、証拠 assemblySecurity、RuntimeAssembly reqAssembly、StackCrawlMark& stackMark、IntPtr pPrivHostBinder、ブール値 throwOnFileNotFound、ブール値 forIntrospection、ブール値を抑制する SecurityChecks) で
System.Reflection.RuntimeAssembly.InternalLoad (文字列 assemblyString、証拠 assemblySecurity、StackCrawlMark & stackMark、IntPtr pPrivHostBinder、Boolean forIntrospection) で
System.Reflection.RuntimeAssembly.InternalLoad (文字列 assemblyString、証拠 assemblySecurity、StackCrawlMark& stackMark、Boolean forIntrospection) で System.Reflection.Assembly.Load (文字列 assemblyString)
SQL Server 2017でこれを再び機能させる方法はありますか?
ありがとうございました