Seabed, Desert, Sky, Gobi, Forest, Tumulus, Spirit

不能刪除訂閱(解決方案)

今天幫同事配置發布和訂閱,

剛解決了不能配置發布的問題, 又出現了新問題, 無法刪除已存在的訂閱..

和大家分享下解決方案, 希望可以幫到遇相同問題的朋友,

執行下面語句即可:

SQL代码
  1. sp_removedbreplication 'XXX'  

XXX 為訂閱復制的數據庫名稱。

訂閱服務器和發布不成功(解決方案)

今天幫同事配置發布和訂閱,

由於不能使用Local為註冊名, 而他的計算機名又特長特難記,

所以就先把他的計算機名改了, 然後新建註冊再來配置,

結果在即將完成時, 提示:

錯誤 18483:未能連接到服務器"DB1",

因為"distributor_admin” 未在該服務器上定義為遠程登錄。

又試了幾次問題依然, 那應該就是改過計算機名的緣故了。

下面我給出解決方案:執行下面語句進行修復, 完成後重啟SQL服務, 重新進行發布配置即可.

SQL代码
  1. if  serverproperty('servername')  <>  @@servername     
  2. begin     
  3.            declare  @server  sysname     
  4.            set  @server  =  @@servername     
  5.            exec  sp_dropserver  @server  =  @server     
  6.            set  @server  =  cast(serverproperty('servername')  as  sysname)                 
  7.            exec  sp_addserver  @server  =  @server  ,  @local  =  'LOCAL'     
  8. end    

 

 

Sql Server inner join 語句

最近正在用Delphi開發一個收銀系統, 今天遇到一個有點棘手的問題.. 其實是想找個最簡便的方法來解決.

往一個Combobox裡加載數據庫某表中的一列"ID",

然後通過選擇它的Item來變更一個Edit的text和一個Label的caption.

Edit裡所要顯示的text和"ID"是在同一表中, 而Label要顯示的caption卻在另一張表中, 兩張表有序號關聯.

但不能在"ID"這張表中添加Label Caption內容的列, 一開始我想難道要做兩次Select..?

兩次select固然可以解決, 只是我總覺得不舒服..  但如果建視圖的話又不方便日後的維護。

隨後我了解到可以用inner join語句來完美解決這個問題, 一次Select搞掂..!

實例代碼如下: 

SQL代码
  1. select 表名1.字段名,表名2.字段名 from 表名1 inner join 表名2 on 表名1.序號=表名2.序號 where ID='+''''+combobox_bno.Text+'''';  

PS:使用inner join語句是可以用一個Select同時查詢到多張表中的不同字段。

只是要注意每張表必須有一列是恒等, 關聯的。類上例中的"序號".