sp_execute_policy SQL中的错误,如何创建SQL构面策略

时间:2012-07-11 04:29:59

标签: sql sql-server conditional-statements administrator policies

我正在尝试在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)

Screen Shot Of Condition And Error

我需要做些什么来解决这个错误?

我已将存储过程更新为proc_的前缀。现在他们是proc_MyProcedure

我仍然遇到同样的错误。

有什么建议吗?

1 个答案:

答案 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