2017-05-29 173 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 
相关问题