SQL Server过程-每天表-每月保存一次历史记录
我有一个在SQL Server中运行的过程。我想每天运行这个程序。哪一个将每天生成输出表 然而,我只想每月记录一次历史。我尝试了以下步骤,但它每天都记录历史 我如何修改它的方式;此表应每天创建,但我每月只能保存一次历史记录,例如在每个月的最后一天SQL Server过程-每天表-每月保存一次历史记录,sql,sql-server,stored-procedures,history,Sql,Sql Server,Stored Procedures,History,我有一个在SQL Server中运行的过程。我想每天运行这个程序。哪一个将每天生成输出表 然而,我只想每月记录一次历史。我尝试了以下步骤,但它每天都记录历史 我如何修改它的方式;此表应每天创建,但我每月只能保存一次历史记录,例如在每个月的最后一天 DECLARE @today AS DATE = CAST(GETDATE() AS DATE) IF OBJECT_ID('[CI_Temp].[dbo].[Items_Scored_With_History]', 'U') IS NULL
DECLARE @today AS DATE = CAST(GETDATE() AS DATE)
IF OBJECT_ID('[CI_Temp].[dbo].[Items_Scored_With_History]', 'U') IS NULL
CREATE TABLE [CI_Temp].[dbo].[Items_Scored_With_History]
(
id INT NOT NULL,
sub VARCHAR(255) NOT NULL,
actual VARCHAR(255) NOT NULL,
preds VARCHAR(255) NOT NULL,
prob VARCHAR(255) NOT NULL,
pred_eval VARCHAR(255) NOT NULL,
score_date DATETIME NOT NULL,
)
ELSE
DELETE FROM [CI_Temp].[dbo].[Items_Scored_With_History]
WHERE score_date = @today;
INSERT INTO [CI_Temp].[dbo].[Items_Scored_With_History]
SELECT id,
sub,
actual,
preds,
prob,
pred_eval,
@today AS score_date,
FROM [CI_Temp].[dbo].[Items_Scored_With_History] WITH (NOLOCK)
任何帮助都将不胜感激-提前感谢 如果您使用的是SQL Server 2012或比SQL Server更新的版本 你可以确保今天的天气是否在月底
DECLARE @today AS DATE = CAST(GETDATE() AS DATE)
IF EOMONTH(@today, 0)=convert(date, GETDATE()) BEGIN
PRINT 'Today is end of months'
--your script will be here.
END
ELSE
PRINT 'Today is not end of the month'
EOMONTH()
可从SQL Server获得(从2012年开始)。@Başar Kaya很抱歉太天真了。我应该在上述程序中添加此条件。请您详细说明并帮助我嵌入建议条件,以便我了解工作程序。谢谢advance@JamesTaylor我编辑了我的答案,它显示了您可以移动到脚本的位置。