關於禁用發布可能出現的問題處理

2021-08-25 03:50:55 字數 2238 閱讀 6597

sql server在訂閱和發布是經常出現一些意想不到的問題,導致發布訂閱無法使用,此時經常需要對發布訂閱進行刪除,筆者經過多次試驗,發現直接刪除發布和訂閱時,經常會出現刪除不徹底,表面現象就是因發布訂閱而出現的觸發器、rowguid列等仍然存在,從而影響資料庫的正常使用,這樣還需要進一步對資料庫處理才能徹底清楚發布和訂閱。

其實在發布和訂閱的選項裡面,有乙個禁用發布,使用此功能,一般會完成發布訂閱的處理,也不會有任何的殘留,所以提示大家在做發布和訂閱的處理時,盡量使用禁用功能,當然,這樣處理有時候也會產生一些異常,對於遺留下的觸發器、rowguid列的問題,我們可以用一些指令碼處理掉,指令碼如下:

-- drop rowguid indexes

select

'drop index '

+ sysobjects. name +

'.'+ sysindexes. name from

sysindexes

inner

join sysobjects on

sysindexes. id = sysobjects. id

where

objectproperty

(object_id

( sysobjects. name),

'ismsshipped'

)= 0

andsysindexes. indid > 0 and sysindexes. indid < 255 and

( sysindexes. status &

64)= 0

andindex_col

( sysobjects. name, sysindexes. indid, 1)

='rowguid'

order

by sysindexes. indid

-- remove rowguid default constraints

select

'alter table '

+ b. name +

' drop constraint '

+ a. name from

sysobjects a

inner

join syscolumns on syscolumns. id = a. parent_obj

inner

join sysobjects b on syscolumns. id = b. id

where

syscolumns. name =

'rowguid'

andobjectproperty

(object_id

( b. name),

'ismsshipped'

)= 0

anda. xtype =

'd'

-- remove rowguid columns

select

'alter table '

+ sysobjects. name +

' drop column ''rowguid'' '

from

syscolumns

inner

join sysobjects on syscolumns. id = sysobjects. id

where

syscolumns. name =

'rowguid'

andobjectproperty

(object_id

( sysobjects. name),

'ismsshipped'

)= 0

有時候 ,還會出現一下提示,

1、可能是因為孤立使用者引起的,其處理方式如下:

use

出問題的庫名;

go--

檢視孤立使用者

exec

sp_change_users_login

'report';

go--

修復孤立使用者

exec

sp_change_users_login

'auto_fix',

'孤立使用者名稱',

null, '

使用者密碼';

還有一種情況是因為資料庫的owner出現異常引起了

,解決方案如下:

use出問題的庫名;

exec

sp_changedbowner 'sa

';然後在使用禁用的方式

,就可以完成發布訂閱的處理了。

Qt發布可能遇到的問題

本文只涉及動態鏈結庫,就是編譯出來的exe檔案加上qt 的必要dll檔案。一般跟別人一樣的操作,直接雙擊 xx.exe,提示缺少什麼dll,就去qt的安裝目錄下的bin資料夾裡去找。我找的目錄是d qt qt5.2.0 5.2.0 msvc2010 bin 複製所需的dll後,提示了這個錯誤。這個錯...

遞迴可能出現的效能問題

遞迴演算法的 很簡潔。但同時也存在缺點。遞迴由於函式要呼叫自身,而函式呼叫是有時間和空間的消耗的。每一次函式呼叫,都需要在記憶體棧中分配空間以儲存引數 返回位址及臨時變數,而且往棧裡壓入資料和彈出資料都需要時間。遞迴有可能很多計算都是重複的,從而對效能帶來很大的負面影響。遞迴的本質是把乙個問題分解成...

使用redis可能出現的問題

首先我們應該先明確快取處理的流程 前台請求,後台先從快取中取資料,取到直接返回結果,取不到時從資料庫中取,資料庫取到更新快取,並返回結果,資料庫也沒取到,那直接返回空結果.1 快取雪崩 指快取由於某些原因 比如 宕機 cache服務掛了或者不響應 整體失效了,導致大量請求到達後端資料庫,從而導致資料...