TSQL:在执行sp_dropdistributor之前检查分销商是否存在
问题描述:
在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
分发服务器未安装。
答
可以使用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
[sp_helpdistributor](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp -helpdistributor-transact-sql)或许 – stuartd
你可以使用select进行查询。通常我执行Update查询并检查修改行的返回值。如果没有行被修改,那么主键不存在,所以我然后执行插入查询来添加新项目。 – jdweng
https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-get-distributor-transact-sql – Hackerman