Moh*_*lam 6 sql-server replication distribution sql-server-2008 database-replication
我使用向导和T-SQL在SQL Server 2008中配置了一个发行版,但之后我想删除它使用向导(右键单击复制并选择"禁用发布和发布...")或执行以下命令:其参数:
exec sp_dropdistributor @no_checks = 1 -- no new results with @ignore_distributor = 1
Run Code Online (Sandbox Code Playgroud)
将出现此错误:
Msq 21122,级别16,状态1,过程sp_dropdistributiondb第124行无法删除分发数据库'lobloblob',因为它当前正在使用中.
我没有发布任何东西,没有配置任何订阅但是给出了这个错误我该怎么办?
试试这个:
SELECT spid FROM sys.sysprocesses WHERE dbid = db_id('distribution')
杀死spid并再试一次.现在它应该工作.
我使用了以下脚本:
SELECT spid FROM sys.sysprocesses WHERE dbid = db_id('distribution')
Run Code Online (Sandbox Code Playgroud)
并发现当前会话的 session_id(包含分发配置脚本)不允许禁用分发,因此我建议使用此脚本终止正在运行的 spid 以删除分发:
use [master]
declare @spid varchar(10)
select @spid=spid from sys.sysprocesses where dbid = DB_ID('distribution')
while @@ROWCOUNTS <> 0
exec ('KILL ' + @spid)
exec sp_dropdistributor @no_checks = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14447 次 |
| 最近记录: |