如何创建具有各种变量和条件的SQL Server插入脚本?

如何创建具有各种变量和条件的SQL Server插入脚本?,sql,sql-server,sql-scripts,Sql,Sql Server,Sql Scripts,我在为SQLServer创建SQL脚本方面的知识非常有限。我需要创建一个非常简单的脚本,插入停机记录,以便在数据库中发布未来日期。我们有日常维护,所以我需要在周一至周六的每一天张贴一份通知。有一个固定的时间段,从午夜到凌晨2点。我想创建一年所需的所有条目 我还需要创建第二个脚本,发布每周1天(星期日)的停机通知,该脚本有不同的备份时间框架。每周备份的时间范围为午夜至早上7点。我想为这一年创建所有必要的条目 我需要插入的数据库表的基本格式是noticetime、begintime、endtime、

我在为SQLServer创建SQL脚本方面的知识非常有限。我需要创建一个非常简单的脚本,插入停机记录,以便在数据库中发布未来日期。我们有日常维护,所以我需要在周一至周六的每一天张贴一份通知。有一个固定的时间段,从午夜到凌晨2点。我想创建一年所需的所有条目

我还需要创建第二个脚本,发布每周1天(星期日)的停机通知,该脚本有不同的备份时间框架。每周备份的时间范围为午夜至早上7点。我想为这一年创建所有必要的条目

我需要插入的数据库表的基本格式是
noticetime、begintime、endtime、msgtext。表名为停机时间
。除msgtxt(文本字段)之外的所有日期字段


如何创建一个脚本,将日期增加到满足条件的有效日期,并在达到特定日期时终止?与每周插入相同?

如果我理解正确,您需要类似的东西,请参阅下面的伪代码,但尚未测试它:

declare 
    @l_maxdate datetime
   ,@l_date datetime

select @l_date = getdate(), @l_maxdate = '2014-12-31'

while @date < @l_maxdate
begin
    if datepart(dw,@l_date) = 1 -- sunday
        insert .... values .... using date variable

    if datepart(dw,@l_date) > 1 -- moday - saturday
        insert .... values .... using date variable

    select @l_date = dateadd(dd, 1, @l_date)
end
声明
@l_maxdate日期时间
,@l_日期日期时间
选择@l_date=getdate(),@l_maxdate='2014-12-31'
而@date<@l_maxdate
开始
如果datepart(dw,@l_date)=1——周日
插入。。。。价值观使用日期变量
如果datepart(dw,@l_date)>1--moday-周六
插入。。。。价值观使用日期变量
选择@l_date=dateadd(dd,1,@l_date)
结束

我已经更新了我的问题。对不起,我想我以为人们可以阅读我需要的东西,并从中得到了。我觉得这个问题其实很详细。这里是挑战。我们看不到您的屏幕,我们不知道您的表结构是什么样的,我们也不知道您的项目试图做什么。类似于“如何创建一个脚本,将日期增加到满足条件的有效日期,并在达到特定日期时终止?”的内容在没有详细说明这意味着什么的情况下并不意味着什么。标准是什么?特定日期的规则是什么?是要插入新行(然后需要使用
INSERT
语句),还是要更新现有行(使用
UPDATE
语句)?您对此并不完全清楚-一旦您谈到插入,然后您提到更新这些列…我已经删除了“更新”一词。是插入这些记录。至于逻辑,没有特殊的逻辑。我需要输入每天(星期日除外)的记录以进行每日备份和星期日记录。没有特别规定。如果你觉得这有帮助,请投票支持。谢谢!这正是我需要的!