2014-08-28 14 views
0

鑑於Java代碼:如何使用通過java.sql中的SQL服務器的sp_addsubscription對象

Connection con = DriverManager.getConnection(url, userName, password); 
con.setAutoCommit(false); 
Statement s1 = con.createStatement(); 
s1.executeUpdate("exec sp_addsubscription @publication = N'TestPublication', @subscriber = N'testDB', @destination_db = N'DBPublish_replication2', @subscription_type = N'Push', @sync_type = N'automatic', @article = N'all', @update_mode = N'failover', @subscriber_type = 0"); 

我不斷收到「程序‘sp_addsubscription’不能在事務內執行」的錯誤。

至於使用的用戶的一些細節:

  1. 用戶從已有bulkadmin和系統管理員權限(事實上,我已經檢查了所有該用戶的服務器角色)
  2. 腳本運行順利沒有錯誤時使用SQL管理工作室與Windows認證用戶

所以我在這裏失蹤?我是否缺少任何用戶權限?

+0

嘗試'setAutoCommit(true)' – 2014-08-28 10:26:38

回答

0

錯誤消息很明顯:您試圖在事務中運行該過程。對於SSMS中的重現,在執行過程之前拋出begin tran;你應該得到同樣的錯誤。