0

我正在尝试在 sql 中创建一个将 sproc 限制为命名约定的策略。

就像当有人创建一个新的 sproc 时,他们将被迫在 sproc 前面加上sp_

喜欢 - sp_MySprocName

但是当我尝试使用正确的命名约定创建一个新的存储过程时,我得到了下面的错误。

当我右键单击策略并选择我的策略时,我单击该Evaluate选项并且一切运行良好,与实际创建新存储过程不同,我收到此错误。

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

我仍然遇到同样的错误。

有什么建议么?

4

1 回答 1

0

基本上问题是microsoft.sqlserver.diadnostics.strace.dll没有安装在 GAC 中。此外,这个文件不在我的服务器上,也不在安装 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
于 2012-12-19T09:48:57.250 回答