我正在尝试在sql中创建一个策略,将sproc限制为命名约定。
当有人创建新的sproc时,他们将被迫在sproc前加sp_
喜欢 - sp_MySprocName
。
但是当我尝试使用正确的命名约定创建一个新的sproc时,我收到以下错误。
当我右键单击Policy并选择我的策略时,我单击Evaluate
选项,一切运行正常,不像我实际创建新的sproc时出现此错误。
Msg 6522, Level 16, State 1, Procedure sp_execute_policy, Line 0
A .NET Framework error occurred during execution of user-defined routine or aggregate "sp_execute_policy":
System.TypeInitializationException: The type initializer for 'Microsoft.SqlServer.Management.Dmf.PolicyEvaluationHelper' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.SqlServer.Diagnostics.STrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
System.IO.FileNotFoundException:
at Microsoft.SqlServer.Management.Dmf.PolicyEvaluationHelper..cctor()
System.TypeInitializationException:
at Microsoft.SqlServer.Management.Dmf.PolicyEvaluationHelper.EvaluateAutomatedPolicy(String policy, SqlXml eventData, Int64& historyId)
at Microsoft.SqlServer.Management.Dmf.PolicyEvaluationWrapper.EvaluateAutomatedPolicy(String policy, SqlXml eventData, Int64& historyId)
我需要做些什么来解决这个错误?
我已将存储过程更新为proc_
的前缀。现在他们是proc_MyProcedure
。
我仍然遇到同样的错误。
有什么建议吗?
答案 0 :(得分:0)
基本上问题是GAC中没有安装microsoft.sqlserver.diadnostics.strace.dll
。此外,此文件不在我的服务器上,而不在安装DVD上,因此我无法安装它。我在家里的电脑上发现了它,但有一个技巧可以到我的工作服务器。
我相信我已经通过复制
解决了这个问题C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Microsoft.SqlServer.Diagnostics.STrace to C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSSHell\Common7\IDE