用C寫一個自動執行SQL語句的程序用C#寫一個自動執行SQL語句 愛
sql定時執行存儲過程 --創建作業 --創建作業exec?msdb。
。sp_add_job?@job_name='數據處理' --創建作業步驟declare?@sql?varchar(800),@dbname?varchar(250)select?@sql='exec?p_proc'--要定時執行的存儲過程,@dbname=db_name()?--執行數據處理的數據庫名 exec?msdb。
。sp_add_jobstep?@job_name='數據處理',@step_name?=?'數據同步',@subsystem?=?'TSQL',@database_name=@dbname,@command?=?@sql,@retry_attempts?=?5,?--重試次數@retry_interval?=?5--重試間隔 --創建調度EXEC?msdb。
。sp_add_jobschedule?@job_name?=?'數據處理',?@name?=?'時間安排',@freq_type=44???--4?每天,8?每周,16?每月@freq_interval=14???--作業執行的天數@freq_subday_type=04???--是否重復執行,0x1?在指定的時間,?0x4?分鐘,?0x8?小時?@freq_subday_interval=1,?--重復周期@freq_recurrence_factor=04??--重復執行,則設置為1,否則設置為0@active_start_time?=?00000?--0點開始執行 如果在SQL?Server?里定時執行存儲過程需要定時或者每隔一段時間執行某個存儲過程或3200字符以內的SQL語句時,可以用管理->SQL?Server代理->作業來實現。
1、管理->SQL?Server代理->作業(按鼠標右鍵)->新建作業-> 2、新建作業屬性(常規)->名稱[自定義本次作業的名稱]->啟用的方框內是勾號-> 分類處可選擇也可用默認的[未分類(本地)]->所有者默認為登錄SQL?Server用戶[也可選其它的登錄]-> 描述[填寫本次工作詳細描述內容]; [?創建作業分類的步驟:?SQL?Server代理->作業->右鍵選所有任務->添加、修改、刪除?] 3、新建作業屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->類型[Transact-SQL(TSQL)腳本]-> 數據庫[要操作的數據庫]->命令[?如果是簡單的SQL直接寫進去即可,也可用打開按鈕輸入一個已寫好的*。 sql文件?如果要執行存儲過程,填?exec?p_procedure_name?v_parameter1,[?v_parameter2…v_parameterN]?]->確定(如果有多個步驟,可以再次調用下面的新建按鈕;也可以對已有的多個步驟插入、編輯、刪除); 4、建作業屬性(調度)->新建調度->名稱[自定義調度名稱]->啟用的方框內是勾號->調度->反復出現-> 更改[調度時間表]->確定(如果只要保存此作業,不要定時做可以把啟用的方框內是勾號去掉); 5、建作業屬性(通知)->用默認的通知方法就好[當作業失敗時,寫入Windows應用程序系統日志]?->確定。
跟作業執行相關的一些SQL?Server知識: SQLSERVERAGENT服務必須正常運行,啟動它的NT登錄用戶要跟啟動SQL?Server數據庫的NT登錄用戶一致。 點作業右鍵可以查看作業執行的歷史記錄情況,也可以立即啟動作業和停止作業。
最近在看作業歷史記錄時,發現有的作業記錄的歷史記錄多,有的作業記錄的記錄的歷史記錄少。 如何能使某些作業按各自的需求,保留一段時間。
比如保留一個月的歷史記錄。 看了SQL?Server的在線幫助文檔,里面介紹說: 在管理->SQL?Server代理->右鍵選屬性->作業系統->限制作業歷史記錄日志的大小-> 作業歷史記錄日志的最大大小(行數)默認為1000如果某臺機器的作業數量很多,一定要提高它,例如為100000 每個作業歷史記錄日志的最大行數?默認為100如果作業每天執行兩次,需要保留一個月的日志,可以設為60 它們之間有一個相互制約關系,?我們可以根據自己的需要來改。
如果在SQL?Server?里需要定時或者每隔一段時間執行某個存儲過程或3200字符以內的SQL語句時,可以用管理->SQL?Server代理->作業來實現。 如果SQL?Server服務器改過機器名,?管理是舊名稱時建立的job的時候可能會遇到 錯誤14274:?無法添加、更新或刪除從MSX服務器上發起的作業(或其步驟或調度) 看了Microsoft的文檔后說SQL?Server?2000系統里msdb。
。sysjobs?里originating_server?字段里存的是原來的服務器的名稱。
24X7在用的系統肯定不能按上面Microsoft的文檔說的那樣把名字改回來又改過去。 于是想,msdb。
。sysjobs?能否update?originating_server?字段成現在在用的新服務器名? use?msdb select?*?from?sysjobs 找到originating_server?字段還是舊服務器的job_id,?然后執行update語句: update?sysjobs?set?originating_server='new_server_name'where?job_id='B23BBEBE-A3C1-4874-A4AB-0E2B7CD01E14' (所影響的行數為?1?行) 這樣就可以添加、更新或刪除那些曾經出error?14274?的作業了。
如果想把作業由一臺機器遷移到另一臺機器,可以先保留好創建作業的腳本,?然后在另一臺機器上運行。 導出所有作業的創建腳本操作步驟: 管理->SQL?Server代理->作業(鼠標右鍵)->所有任務->生成SQL腳本->保存到操作系統下的某個sql文件 導出某一個作業的創建腳本操作步驟:?管理->SQL?Server代理->作業->選中待轉移的作業(鼠標右鍵)->所有任務->生成SQL腳本->保存到OS下的某個sql文件 然后在目的服務器上運行剛才保存下來的創建作業的sql腳本。
(?如果建作業的用戶或。
SQL語句如何提取不規則字段中的電話號碼
1.存儲過程編譯器事先對存儲過程金星了語法檢查處理,避免了因SQL語句語法不正確引起運行時出現異常的問題. 2.只在保存存儲過程時數據庫服務器才進行編譯,以后每次執行存儲過程都不需要再進行重新編譯而一般的SQL語句每執行一次就需要數據庫引擎重新編譯一次,所以使用存儲過程可以提高數據庫執行效率(補充:這點很有用,特別是感覺你的程序和數據庫相關有點慢時可以用這點,幫你程序運行的更快) 3.可以在定義存儲過程的時候直接檢查運行的結果是否正確,可視化的設計界面提高了效率. 4.避免了查詢字符串中包含單引號等特殊字符可能會出現的問題 5.一個項目中可能會多處用到相同的SQL語句,使用存儲過程便于重用 6.修改靈活方便,當需要修改完成的功能時,只需要修改定義的存儲過程即可,不必單獨修改每一個引用。
.。
如何跟蹤應用程序執行的sql語句
---跟蹤
開始--程序--MS SQLSERVER
--事件探察器(SQL Profiler)
--文件
--新建--跟蹤。
--設置要跟蹤的服務器的信息(連接服務器)--確定
--設置跟蹤的項目。
--然后數據庫的調用情況就會顯示出來
在跟蹤項目設置中,如果不熟悉的話,一般用默認設置
篩選項目有幾個可以注意一下:
*seName 同于你要檢測的數據庫名
* 同于錯誤,如果經常出現某個編號的錯誤,則針對此錯誤號
*s 同于0,失敗,1,成功,如果是排錯,就過濾掉成功的處理