Ⅰ sqlserver2008 怎麼讓一條sql語句 每間隔10秒執行一次
辦法有很多
比方說你編一個小程序,讓sql語句每10秒執行一次
或者用批處理+sql腳本也可以
或者直接在sqlserver裡面寫存儲過程執行,使用waitfor time函數
Ⅱ SqlServer如何設置每秒執行存儲過程
打開SQL Server Management Studio,SQL Server代理--作業--點右鍵--新建作業
作業的名稱取為:test
並進行說明,若作業的數量太多,以方便區別;
這里寫上定時執行存儲過程Pr_test
確定保存.
點擊常規下面的步驟,按箭頭指示,新建步驟.
取名步驟名稱:exec pr_test
注意選擇存儲過程所在的資料庫
錄入需要執行的命令:exec pr_test ,確定保存.
若有其它參數命令也可以編寫
接下來設置計劃,自動定時執行的時間.
新建計劃,進放計劃屬性設置窗口.
6
依然要填寫計劃的名稱:exec pr_test
計劃類型:重復計劃
時間頻率:每月的26日的12點30分自動執行一次
持續時間:無結束日期
確定保存.到此基本功能已經設置完成,額外其它功能可以根據需要進行增加.
Ⅲ 可以不可以 讓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服務,裡面的作業就可以自動按時間調度了
Ⅳ sql 每隔一段時間執行新增語句
每隔一段時間進行一操作(執行新增語句),可以用「作業」去做。
UPDATE就是一個作業,每天自動備份資料庫。
作業就是執行每天、每間隔10分鍾、每周1到周五、每個月第一天這樣的頻率去重復做一件事的意思,你可以理解成在智能手機中設置鬧鍾,只不多在資料庫中,不是響鈴,而是執行sql腳本(sql語句、存儲過程等等)
Ⅳ sql server 過程怎麼可以一個月執行一次
寫個存儲過程(sql語句),然後新建個作業(Job)來調用這個它
job的周期為一個月
Ⅵ 如何讓sql每天執行一下一個寫好的sql語句
可以設置定時任務,比較常用的是用sqlserver 代理新建作業。有時候資料庫自動備份也是用的這個。
還有一種比較復雜自己寫個程序,使用系統定時任務 定時執行。
創建sql server定時任務作業步驟如下:
1.要先安裝了sqlserver 代理服務
--2.滑鼠右擊【SQL Server 代理】,選擇【啟動(S)】,如已啟動,可以省略此步驟;
--3.展開【SQL Server 代理】列表,右擊【作業】--【新建作業】;
--3.1 在【常規】選項卡中:
-- 輸入作業名稱,如My Job;
--3.2 在【步驟】選項卡中:
--3.2.1 點擊【新建】,輸入【步驟名稱】,如步驟1,類型默認T-SQL腳本,也可以選擇SSIS包等;
--3.2.2 在【資料庫】一欄選擇要作業處理的資料庫,在【命令】的右邊空白編輯欄輸入要執行的SQL代碼,
EXEC p_Name --如:執行一個P_Name的存儲過程
-- 也可以點擊命令下面的【打開】,打開.sql腳本;
--3.2.3 輸入運行腳本後,建議點擊【分析】,確保腳本語法正確,然後點擊下面的【確定】按鈕;
--3.3 在【計劃】選項卡中:
--3.3.1 點擊【新建】,輸入【計劃名稱】,如計劃1,計劃類型默認是重復執行,也可以選擇執行一次等;
--3.3.2 在【頻率】--【執行】處選擇每天、每周或每月,以每天為例,間隔時間輸入間隔幾天執行一次,
-- 下面還可以選擇每天一次性執行或間隔一定的時間重復執行
--3.3.3 在【持續時間】中選擇計劃開始執行的【起始日期】和【截止日期】,然後點擊【確定】按鈕;
--注意要將服務設置為自動啟動,否則在重啟伺服器後作業就不運行了。
--啟動代理服務的方法:
--開始--運行--輸入services.msc--找到【SQL Server 代理】的服務並雙擊--【啟動類型】選擇自動--【確定】
--至此,定時作業已創建完畢。
Ⅶ sql2008怎麼設置計劃任務
用作業,放入SQL代碼,設置執行頻率即可
Ⅷ sql server 裡面的作業格式是什麼,應該怎麼寫,怎麼使用
sql server作業用法
一.作業的運用(自動更新db)
1、 打開sql server的企業管理器,找到管理中的作業
2、 新增一個作業,將具體的設置進行設定,新增步驟以確定要處理的sp及sql語句
新增調度以確定要執行的頻率!
3、例子
二.處理SP及其它sql語句以進行作業處理(運用數據倉庫的模式)
1、 創建要進行保存數據的空間(一般為表)
2、 運用作業進行數據填充
3、 通過存的數據進行數據呈現
三.具體示例
1、 創建表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[r_Count1]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[r_Count1]
GO
CREATE TABLE [dbo].[r_Count1] (
[UnitCoding] [varchar] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[StatDate] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Field1] [int] NOT NULL ,
[Field2] [int] NOT NULL ,
[Field3] [int] NOT NULL ,
[Field4] [int] NOT NULL ,
[Field5] [int] NOT NULL ,
[Field6] [int] NOT NULL ,
[Field7] [int] NOT NULL ,
[Field8] [int] NOT NULL ,
[Field9] [int] NOT NULL ,
[Field10] [int] NOT NULL ,
[Field11] [int] NOT NULL ,
[Field12] [int] NOT NULL ,
[Field13] [int] NOT NULL ,
[Field14] [int] NOT NULL ,
[Field15] [int] NOT NULL ,
[Field16] [int] NOT NULL ,
[Field17] [int] NOT NULL ,
[Field18] [int] NOT NULL
) ON [PRIMARY]
GO
2、 處理數據(運用作業的sp)
ALTER PROCEDURE AutoExec_Count1
(
@UnitCoding varchar(20),
@StatDate datetime
)
AS
/* 向臨時表中插入要變更單位的新舊單位代碼 */
Declare @i_SFirstdate varchar(10)
Declare @i_EFirstdate varchar(10)
Declare @i_SSeconddate varchar(10)
Declare @i_ESeconddate varchar(10)
Declare @i_getdate datetime
Select @i_getdate = @StatDate
Select @i_SFirstdate=dbo.u_Date2Char(DATEADD(mm,DATEDIFF(mm,0,@i_getdate),0))--當月第1天
Select @i_EFirstdate=dbo.u_Date2Char(DATEADD(dd,14,DATEADD(mm,DATEDIFF(mm,0,@i_getdate),0))) --當月第15天
Select @i_SSeconddate=dbo.u_Date2Char(DATEADD(dd,15,DATEADD(mm,DATEDIFF(mm,0,@i_getdate),0))) --當月第16天
Select @i_ESeconddate=dbo.u_Date2Char(DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,@i_getdate)+1,0))) --當月最後1天
/* 啟動事務 */
Begin transaction
/* 創建用於保存單位代碼和報表周期的臨時表 */
Create Table #TblUnitDateSwap
(
NumberID int IDENTITY (1, 1) NOT NULL ,
UnitCoding varchar(20),
startdate varchar(10),
enddate varchar(10)
)
/* 向臨時表中插入單位數據 */
Select @UnitCoding = RTrim(@UnitCoding) + '%' --
--插入上半月統計日期(例:2004-1-1~2004-1-15)
Insert Into #TblUnitDateSwap(UnitCoding,startdate,enddate)
Select UnitCoding,@i_SFirstdate,@i_EFirstdate
From m_Units Where Len(UnitCoding)=12 And (UnitCoding Like @UnitCoding)
--插入下半月統計日期(例:2004-1-16~2004-1-31)
Insert Into #TblUnitDateSwap(UnitCoding,startdate,enddate)
Select UnitCoding,@i_SSeconddate,@i_ESeconddate
From m_Units Where Len(UnitCoding)=12 And (UnitCoding Like @UnitCoding)
--插入整月統計日期(例:2004-1-1~2004-1-31)
Insert Into #TblUnitDateSwap(UnitCoding,startdate,enddate)
Select UnitCoding,@i_SSeconddate,@i_ESeconddate
From m_Units Where Len(UnitCoding)=12 And (UnitCoding Like @UnitCoding)
/*插入存儲過程開始執行時間(正式執行時屏蔽此功能)*/
INSERT INTO r_ExecTime(UnitCoding,ExecName) VALUES(@UnitCoding,'START')
Declare @errorcode int
Declare @i_UnitCoding varchar(20)
Declare @i_startdate varchar(10)
Declare @i_enddate varchar(10)
/* 統計插入臨時表中的記錄數 */
Declare @v_TempTableCount int
Select @v_TempTableCount = count(*) From #TblUnitDateSwap
Declare @i integer -- 定義一個臨時循環變數
Select @i=1 -- 初始化臨時變數為1
--循環每個基層單位(單位代碼長度為12),將統計值保存到r_Count對應表中
While(@i <= @v_TempTableCount) -- 執行循環的條件為臨時變數<=臨時表記錄數
Begin -- w01
Select @i_UnitCoding = UnitCoding,@i_startdate = startdate,@i_enddate = enddate
From #TblUnitDateSwap
Where NumberID = @i
If Not Exists (Select * From r_Count1 Where UnitCoding = @i_UnitCoding And StatDate = @i_startdate)
Begin
INSERT INTO r_Count1
EXEC ('dbo.sp_Count1_Auto_New '+@i_UnitCoding+','+@i_startdate+','+@i_enddate)
End
Else--如果存在已統計的記錄,則刪除該記錄,重新插入最新統計記錄(為提高效率,可以屏蔽此功能)
Begin
Delete From r_Count1 Where UnitCoding = @i_UnitCoding And StatDate = @i_startdate
INSERT INTO r_Count1
EXEC ('dbo.sp_Count1_auto '+@i_UnitCoding+','+@i_startdate+','+@i_enddate)
End
--獲得錯誤代碼值
Select @errorcode=@@error
/*** 臨時循環變數自增1*/
Select @i=@i+1
End -- w01
/*插入存儲過程開始執行時間(正式執行時屏蔽此功能)*/
INSERT INTO r_ExecTime(UnitCoding,ExecName) VALUES(@UnitCoding,'END')
/*
--調試執行循環次數
Declare @jj varchar(10)
Select @jj = convert(varchar(10),@i)
Print '執行次數:'+@jj
*/
/* 刪除臨時表 */
Drop Table #TblUnitDateSwap
If(@errorcode = 0)
Begin
Commit Transaction
End
Else
Begin
Rollback Transaction
End
RETURN
3、 挖掘數據
Create PROCEDURE dbo.sp_Count1_Auto_New
(
@Unitcoding varchar(20),
@startdate char(8) ,
@enddate char(8)
)
AS
declare @length integer
declare @len integer
select @length=len(@Unitcoding)
if @length = 4 or @length = 2
begin
select @len=2
end
else if @length = 12
begin
select @len=0
end
else
begin
select @len=3
end
select @Unitcoding As UnitCoding,
@startdate As StatDate,
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,99,99,99,0,99,99,99,0),
dbo.getFCount_inout(Unitcoding,@startdate,@enddate,99,99,99,0,99,99,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,99,0,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,1,0,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,99,0,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,1,0,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,99,1,0,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,1,1,0,0) ,
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,99,1,0,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,1,1,0,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,99,1,1,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,1,1,1,0) ,
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,99,1,1,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,1,1,1,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,99,99,99,1,99,99,99,0),
dbo.getFCount_inout(Unitcoding,@startdate,@enddate,99,99,99,1,99,99,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,1,1,1,99,99,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,1,1,1,1,99,99,0)
from m_units
where Unitcoding like @Unitcoding + '%' and len(Unitcoding) = len(@Unitcoding) + @len
RETURN
4、 數據分析顯示
Select dbo.getUnitName(Left(UnitCoding,@v_Len)) As '單位名稱',
Sum(Field1),
Sum(Field2),
Sum(Field3),
Sum(Field4),
Sum(Field5),
Sum(Field6),
Sum(Field7),
Sum(Field8),
Sum(Field9),
Sum(Field10),
Sum(Field11),
Sum(Field12),
Sum(Field13),
Sum(Field14),
Sum(Field15)
From dbo.u_Count1_Report_New(@Unitcoding,@startdate,@enddate)
Group By Left(UnitCoding,@v_Len),dbo.getUnitName(Left(UnitCoding,@v_Len))
Order By Left(UnitCoding,@v_Len),dbo.getUnitName(Left(UnitCoding,@v_Len))
/*function表
Create FUNCTION dbo.u_Count1_Report_New
(
@Unitcoding varchar(20),
@startdate char(8) ,
@enddate char(8)
)
RETURNS @r_Count1 TABLE
(
UnitCoding varchar (20),
--StatDate varchar(10),
Field1 int NOT NULL ,
Field2 int NOT NULL ,
Field3 int NOT NULL ,
Field4 int NOT NULL ,
Field5 int NOT NULL ,
Field6 int NOT NULL ,
Field7 int NOT NULL ,
Field8 int NOT NULL ,
Field9 int NOT NULL ,
Field10 int NOT NULL ,
Field11 int NOT NULL ,
Field12 int NOT NULL ,
Field13 int NOT NULL ,
Field14 int NOT NULL ,
Field15 int NOT NULL ,
Field16 int NOT NULL ,
Field17 int NOT NULL ,
Field18 int NOT NULL
)
AS
BEGIN
declare @length integer
declare @v_Len integer
select @length=len(@Unitcoding)
Select @v_Len = 12
INSERT @r_Count1
Select Left(UnitCoding,@v_Len) As UnitCoding,
--StatDate,
Max(Field1) As Field1,
max(dbo.GetOneMonth1(Left(UnitCoding,@v_Len),@startdate,@enddate,0)) As Field2,
Max(Field3) As Field3,
Max(Field4) As Field4,
Max(Field5) As Field5,
Max(Field6) As Field6,
Max(Field7) As Field7,
Max(Field8) As Field8,
Max(Field9) As Field9,
Max(Field10) As Field10,
Max(Field11) As Field11,
Max(Field12) As Field12,
Max(Field13) As Field13,
Max(Field14) As Field14,
Max(Field15) As Field15,
max(dbo.GetOneMonth1(Left(UnitCoding,@v_Len),@startdate,@enddate,1)) As Field16,
Max(Field17) As Field17,
Max(Field18) As Field18
From r_Count1
Where StatDate >=@startdate And StatDate <=@enddate
And UnitCoding Like @Unitcoding + '%'
Group By Left(UnitCoding,@v_Len)
Order By Left(UnitCoding,@v_Len)
RETURN
END
Ⅸ 在SQL SERVER 2000中建立一個作業,定時執行一次。
舉個定時備份的例子: --建立一個作業! 企業管理器 --管理 --SQL Server代理 --右鍵作業 --新建作業 --"常規"項中輸入作業名稱 --"步驟"項 --新建 --"步驟名"中輸入步驟名 --"類型"中選擇"Transact-SQL 腳本(TSQL)" --"資料庫"選擇執行命令的資料庫 --"命令"中輸入要執行的語句: backup database database1 to disk='c:\備份文件名.bak' --確定 --"調度"項 --新建調度 --"名稱"中輸入調度名稱 --"調度類型"中選擇你的作業執行安排 --如果選擇"反復出現" --點"更改"來設置你的時間安排 然後將SQL Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行