檢查是否以SQL 2000,2005和2008兼容格式啓用複製的最簡單方法是什麼?不需要任何狀態信息...只是爲了知道它是否爲數據庫啓用。我需要這個,因爲我希望我的Db Migration代碼在嘗試執行模式更新之前啓用複製時引發異常。檢查是否啓用複製
謝謝。
檢查是否以SQL 2000,2005和2008兼容格式啓用複製的最簡單方法是什麼?不需要任何狀態信息...只是爲了知道它是否爲數據庫啓用。我需要這個,因爲我希望我的Db Migration代碼在嘗試執行模式更新之前啓用複製時引發異常。檢查是否啓用複製
謝謝。
在看這篇文章,MSDN說:「當一個用戶數據庫被配置爲發佈者或訂閱服務器,複製增加了系統表到數據庫中。當用戶數據庫是從複製拓撲中刪除這些表中移除的」
您可以查找文章中列出的其中一個表作爲複製證明,並相應地繼續查詢。
我發現了這個查詢,但這隻適用於SQL 2005及更高版本(不適用於SQL 2000 verson)。
T-SQL查詢
select name, is_published, is_subscribed, is_merge_published, is_distributor
from sys.databases
where is_published = 1 or is_subscribed = 1 or
is_merge_published = 1 or is_distributor = 1
來源:www.mssqlinsider.com/2013/09/check-databases-part-replication:
SELECT
name as [Database name],
CASE is_published
WHEN 0 THEN 'No'
ELSE 'Yes'
END AS [Is Published],
CASE is_merge_published
WHEN 0 THEN 'No'
ELSE 'Yes'
END AS [Is Merge Published],
CASE is_distributor
WHEN 0 THEN 'No'
ELSE 'Yes'
END AS [Is Distributor],
CASE is_subscribed
WHEN 0 THEN 'No'
ELSE 'Yes'
END AS [Is Subscribed]
FROM sys.databases
WHERE database_id > 4
該聲明沒有FROM子句。 –
不確定這是否被視爲剽竊。 [來源](http://www.mssqlinsider.com/2013/09/check-databases-part-replication/)(在編輯的情況下) –
有各種啓發式方法,但沒有簡單的狀態查詢。另外,複製可以非常精細,因此可以在數據庫中的某些對象上啓用它,而這些對象無論如何都不會修改。 –