2017-05-29 100 views
1

在T-SQL中使用此命令刪除分銷商之前是否存在檢查分銷商是否存在的方法?TSQL:在執行sp_dropdistributor之前檢查分銷商是否存在

exec sp_dropdistributor @no_checks = 1, @ignore_distributor=1 

事情是這樣的:

If (Distributor Exists) Then 
    exec sp_dropdistributor @no_checks = 1, @ignore_distributor=1 

我試圖避免的是,當我執行該語句獲取生成該錯誤和經銷商不存在:

消息21043,級別16,狀態1,過程sp_dropdistributor,行50
分發服務器未安裝。

+1

[sp_helpdistributor](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp -helpdistributor-transact-sql)或許 – stuartd

+1

你可以使用select進行查詢。通常我執行Update查詢並檢查修改行的返回值。如果沒有行被修改,那麼主鍵不存在,所以我然後執行插入查詢來添加新項目。 – jdweng

+2

https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-get-distributor-transact-sql – Hackerman

回答

2

可以使用sp_get_distributor過程:

declare @temp table 
    (
     is_installed int, 
     distribution_server_name varchar(500), 
     is_distribution_db_installed int, 
     is_distribution_publisher int, 
     has_remote_distribution_publisher int 
    ); 

    insert @temp exec sp_get_distributor 

    if((select is_installed from @temp) = 1) 
    begin 
     exec sp_dropdistributor @no_checks = 1, @ignore_distributor=1 
    end 
相關問題