我想通過系統定義的 sp 洗掉許多測驗 IP
從 sql server 的 sys.firewall_rules 表中執行 sp_delete_firewall_rule
我正在使用游標下方,但它不起作用
declare @name nvarchar(max)
declare cur CURSOR LOCAL for
select @name from sys.firewall_rules where [name] like '%TestIP%'
open cur
fetch next from cur into @name
while @@FETCH_STATUS = 0 BEGIN
exec sp_delete_firewall_rule @name
fetch next from cur into @name
END
close cur
deallocate cur
uj5u.com熱心網友回復:
它對我有用,您只需要更改代碼中的一些內容。
- 在選擇串列中包括表ColumnName [name] 而不是 variable。您沒有將任何值傳遞給變數,因此這給出了 NULL 結果。
- 執行時包含 SP 引數
exec sp_delete_firewall_rule @name = @name1;
我的防火墻規則中有這些 IP:

使用以下代碼,我將洗掉名稱類似于TestIP1的 IP 。
DECLARE @name1 nvarchar(128);
DECLARE MyCursor CURSOR FOR
SELECT [name] from sys.firewall_rules where [name] like '%TestIP1%';
OPEN MyCursor;
FETCH FROM MyCursor into @name1
WHILE @@FETCH_STATUS = 0 BEGIN
EXEC sp_delete_firewall_rule @name = @name1 ;
FETCH next from MyCursor into @name1
END
CLOSE MyCursor;
DEALLOCATE MyCursor;
GO

現在結果只顯示 1 個 IP 沒有包含在上述洗掉串列中。

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/335599.html
標籤:sql sql-server sql-server-2008 azure-sql-数据库 游标
上一篇:在unix中計算檔案行和檔案名
