2011-09-28 44 views

回答

2

是的,你可以通過基於策略的管理來實現。您創建條件的過程方面與參數@名稱NOT LIKE'sp_%'。然後,您爲該條件創建政策,您可以按需或按計劃執行此操作。

+2

請注意,模式'sp_%'匹配任何以字母'sp'開頭且至少包含一個以上字符的名稱,因爲'_'是一個特殊字符。我認爲模式'sp [_]%'可以工作。 –

+1

此外,政策系統可以讓您發現*某些事情已經做錯了,但並未阻止事情發生。 –

2
  1. 打開SQL Management Studio中
  2. 轉到 「管理」 - >狀況 - >創建新的條件
  3. 爲條件輸入一個名稱。
  4. 選擇小面 「存儲過程」
  5. 在列中輸入 「現場」 @name
  6. 輸入欄 「操作員」 NOT LIKE
  7. 列 「值」 'SP [_]%' 回車
  8. 點擊確定保存

  9. 創建一項政策。進入「管理」 - >策略 - >創建新策略

  10. 的政策
  11. 輸入一個名稱,選擇在下拉菜單中選擇條件「查詢條件」
  12. 集命名爲「評估模式」到「在變化:防止」
  13. 啓用該策略
  14. 點擊OK輸入一個新的查詢

  15. 保存並啓用該策略

  16. 測試的策略210

CREATE PROCEDURE sp_test對它 @LastName爲nvarchar(50), @firstName爲nvarchar(50) AS

SET NOCOUNT ON; SELECT姓氏,部門 FROM HumanResources.vEmployeeDepartmentHistory WHERE FirstName = @FirstName AND LastName = @LastName AND EndDate IS NULL; GO

這導致:

政策 'StoredProcNamingPolicy' 已由>侵犯> 'SQLSERVER:\ SQL \ DB01 \ DEFAULT \數據庫\ MYDB \ StoredProcedures \ dbo.sp_test'。 該交易將被回滾。 策略條件: '@Name NOT LIKE'SP [_]%' 策略說明: '' 附加幫助: '': '' 聲明:「CREATE PROCEDURE sp_test對它 @LastName爲nvarchar(50), @firstName nvarchar(50) AS

SET NOCOUNT ON; SELECT FirstName,LastNam ...'。 消息3609,級別16,狀態1,過程sp_syspolicy_dispatch_event,行65 事務在觸發器中結束。該批次已被中止。

+0

管理工作室的這個管理菜單在哪裏? –

相關問題