如何使用SQL Server代理運行CmdExec命令_Mssql數據庫教程
推薦:解答使用SQL Server數據庫查詢累計值的方法有這樣一個要求,它要創建一個SQL Server查詢,其中包括基于事件時刻的累計值。典型的例子就是一個銀行賬戶,因為你每一次都是在不同的時間去存錢和取錢。對任意一個賬戶來說,在某個
需求:調用網服務器(SMS SQL Server)上的短信發送接口(是一個存儲過程)來發送(Stage SQL Server)上的數據內容到本Team 成員的手機上。這兩臺服務器,本地在撥VPN后可以訪問。要求以本地的SQL Server做跳轉,同時調用這兩臺服務器的數據接口。
實現方法與步驟(在本地的SQL Server環境):
1、創建一個SQL Server Job
2、創建一個調用 操作系統(CmdExec)命令的Job步驟,調用命令以完成自動撥VPN的功能。
代碼如:
rasdial idc_name user_name user_password
3、創建鏈接服務器SMS SQL Server和Stage SQL Server。
4、創建一個讀取Stage SQL Server上需要發送的數據內容,并調度SMS SQL Server的短信發送接口,完成短信發送的Job步驟(T-SQL)。
5、創建一個CmdExec的Job步驟,調用命令完成自動斷開VPN的功能。
代碼如:
rasdial idc_name /disconnect
6、設置這三個步驟的先后順序(2,4,5)。并設置調度頻率為每天早上9點。
該過程中可能涉及到兩個問題,如下:
1、分別調用兩個服務器上的存儲過程,可能需要打開分布式事務。簡要步驟如下:
運行dcomcnfg命令,組件服務,計算機,我的電腦,屬性,MSDTC,安全配置
選中“網絡DTC訪問”
在客戶端管理中選中“允許遠程客戶端”“允許遠程管理”
在事務管理通訊中選“允許入站”“允許出站”“不要求進行驗證”
保證DTC登陸賬戶為:NT AuthorityNetworkService
2、執行CmdExec步驟的默認帳號是SQL Server代理的啟動帳號,一般是 NT AUTHORITYNetworkService,該帳號不是sysadmin組,
不具備執行該命令的權限。所以可能需要修改代理的啟動帳號為有權限的帳號。
總結:本文總結問題的關鍵在于把握分布式事務的正確開啟以及SQL Server代理中,通常執行Job的帳號AUTHORITYNetworkService并不屬于系統管理員組,代理執行一些任務失敗時,注意觀察所執行操作需要的權限,例如本文的執行CmdExec命令,就需要sysadmin或者操作系統管理員的權限。
分享:解讀SQL2008增強的集成開發環境增強的集成開發環境 目錄 準備工作1 練習1:智能感知功能2 練習 2:使用錯誤列表3 練習 3:使用單步調試5 準備工作 預計完成本實驗所需的時間 30 分鐘 目標 在完
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數據庫教程-如何使用SQL Server代理運行CmdExec命令
。