使用SQL代理服務的」作業「(job)。以SQL2000為例。
1、在SQL企業管理器中,如圖選擇」作業「,新建一個作業
4、保存作業即可。
B. windows下自動執行sql語句怎麼做
試試這個辦法
1:創建存儲過程,用oracle的FILE_TYPE寫sql的第一行到臨時文件 eg:....YYYY-MM-DD.log.
2:在臨時文件中調用你的sql, eg: @c:\query.sql
3:Oracle Job 定時任務 eg:dbms_job.submit(XXX);
C. sql server 2000怎樣設置定時自動運行SQL語句
如果在SQL Server 里需要定時或者每隔一段時間執行某個存儲過程或3200字元以內的SQL語句時,
可以用管理->SQL Server代理->作業來實現。
1、管理->SQL Server代理->作業(按滑鼠右鍵)->新建作業->
2、新建作業屬性(常規)->名稱[自定義本次作業的名稱]->啟用的方框內是勾號->
分類處可選擇也可用默認的[未分類(本地)]->所有者默認為登錄SQL Server用戶[也可選其它的登錄]->
描述[填寫本次工作詳細描述內容];
[ 創建作業分類的步驟:
SQL Server代理->作業->右鍵選所有任務->添加、修改、刪除 ]
3、新建作業屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->類型[Transact-SQL(TSQL)腳本]->
資料庫[要操作的資料庫]->命令
[ 如果是簡單的SQL直接寫進去即可,也可用打開按鈕輸入一個已寫好的*.sql文件
如果要執行存儲過程,填
exec p_procere_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伺服器改過機器名, 管理是舊名稱時建立的job的時候可能會遇到
錯誤14274: 無法添加、更新或刪除從MSX伺服器上發起的作業(或其步驟或調度)
看了Microsoft的文檔:http://support.microsoft.com/default.aspx?scid=kb;en-us;281642
說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腳本。
( 如果建作業的用戶或者提醒的用戶不存在, 則會出錯;
我們需要在目的伺服器上建立相關的WINDOWS用戶或者SQL Server資料庫登錄,
也可以修改創建作業的腳本, 把目的伺服器上不存在的用戶替換成已經有的用戶。
如果生成日誌的物理文件目錄不存在,也應該做相關的修改,例如d:區轉f:區等
字元串的 @command 命令里有分隔符號 go 也會出錯, 可以把它去掉)
D. SQLServer怎麼創建任務來自動執行一連串SQL語句
第一步當然是打開我們的SQLServer軟體,打開之後,我們需要找到「SQL Server Agent」,如下圖中所示。
這個時候我們需要注意的是:如果在「SQL Server Agent」的圖表左邊我們看到一個紅色的小x,這個時候就說明我們需要「start」,具體位置如下圖。
完成第二步之後,我們就可以看到,之前的小x已經消失了,會轉變為如下圖所示的樣子。
現在我們就開始來創建一個「job」,具體步驟是點擊「job」,右鍵選擇「New job」。然後我們就會看到一個創建一個新的「job」的窗口,如下圖:這個我們創建一個名為「test2」的「job」。
取好名字之後,我們就點擊「steps」進入最重要的步驟:這里我們需要把我們想要執行的sql語句按步驟一步一步的填寫好,具體步驟是點擊「New」開始每一步sql的錄入。
這里筆者只添加一步用來演示給大家看,假設我們要執行的是:「select * from test where id=001」,如下圖所示操作。
設置完成所有步驟之後,我們可以給這個「job」自動化運行的時間,具體做法是點擊「scheles」->"New" 然後就會出現設置自動化運行的時間設置窗口,如果我們希望每個月的第一天運行這個「job」,就可以入下圖所示設置。
完成設置之後,點擊「確定」,然後刷新我們的資料庫,我們就可以看到「test2」已經創建完成。
E. 可以不可以 讓sql 2008 每天自動執行一條語句
C:\Documents and Settings\Wang>osql /?
用法: osql [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w columnwidth]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-L list servers] [-c cmdend] [-D ODBC DSN name]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-n remove numbering] [-m errorlevel]
[-r msgs to stderr] [-V severitylevel]
[-i inputfile] [-o outputfile]
[-p print statistics] [-b On error batch abort]
[-X[1] disable commands [and exit with warning]]
[-O use Old ISQL behavior disables the following]
<EOF> 批處理
控制台寬度自動調整
寬消息
默認錯誤級別為 — 1 對 1
[-? show syntax summary]
osql -u 用戶名 -p 密碼 -s 伺服器 -d 資料庫名 -i sql文件
把你要執行的sql語句寫好保存到一個文件裡面,在把上句復制到一個文本文件裡面,改成bat擴展名變成批處理文件,然後系統控制面板裡面有個計劃任務,把批處理文件加到計劃任務裡面,這個比較麻煩,簡單點的是sql企業管理器裡面有個作業管理,在sql agent裡面,啟用sqlagent服務,裡面的作業就可以自動按時間調度了
F. 求一句SQL語句,可以定期自動執行一條語句。比如:update a set b=1,我想讓這條語句一個星期自動執行一次。
是MSSQL嗎?
企業管理器
--管理
--SQL Server代理
--右鍵作業
--新建作業
-- "常規 "項中輸入作業名稱
-- "步驟 "項
--新建
-- "步驟名 "中輸入步驟名
-- "類型 "中選擇 "Transact-SQL 腳本(TSQL) "
-- "資料庫 "選擇執行命令的資料庫
-- "命令 "中輸入要執行的語句
--確定
-- "調度 "項
--新建調度
-- "名稱 "中輸入調度名稱
-- "調度類型 "中選擇你的作業執行安排
--如果選擇 "反復出現 "
--點 "更改 "來設置你的時間安排
然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行
設置方法:
我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇 "自動啟動 "--確定.
G. 編寫一個.bat文件自動進行執行某條sql語句
--------a.bat------------
SQLPLUS/NOLOG @C:\a.sql
-----a.sql---------------
SPOOL a.LOG;
CONNECT user/password@orcl
@C:\b.SQL;
SPOOL OFF;
DISCONNECT;
EXIT;
-----b.sql-----
select * from al;
H. 請教,如何定時自動執行SQL
--"類型"中選擇"Transact-SQL 腳本(TSQL)" --"資料庫"選擇執行命令的資料庫 --"命令"中輸入要執行的語句: Update City Set IsAccess=0--確定--"調度"項--新建調度--"名稱"中輸入調度名稱 --"調度類型"中選擇你的作業執行安排--定為每天調度一次,時間為18:40即可 --如果選擇"反復出現" --點"更改"來設置你的時間安排 然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行設置方法:我的電腦--控制面板--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定.
I. 怎樣自動執行一段SQL語句
資料庫里有作業的功能,可以定時執行SQL語句、存儲過程:
SqlServer代理--作業--新建作業--
在常規里給作業起名等等--
在步驟里--新建步驟--起名--命令里可以是SQL語句也可以調存儲過程
在計劃里--新建計劃--設置執行作業的時間
、、、