如何更新表格 [英] How to update a table

查看:102
本文介绍了如何更新表格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须准备一个脚本,该脚本仅在每个月的第一天晚上9点运行,其他日子则不会运行。



请参阅脚本下面。我在执行它时遇到错误。

请建议正确的方法。



我尝试过:



 声明  @@ ScriptRunDate   datetime  
set @@ ScriptRunDate = DATEADD(mm,DATEDIFF) (mm, 0 ,GETDATE()), 0
选择 @@ ScriptRunDate
案例 when
@@ ScriptRunDate

update Cssscript set ScriptState = ' 有效' 其中 id = ' Adhoc'
else
update Cssscript set ScriptState = ' InActive' 其中 id = ' Adhoc'

解决方案

您收到两个错误:

关键字'Case'附近的语法不正确。 

关键字'else'附近的语法不正确。



这应该可以为您提供使用错误构造的线索。您实际上想要使用IF语句 - 请参阅 IF ... ELSE(Transact-SQL)| Microsoft Docs [ ^ ]。类似

 声明  @@ ScriptRunDate   datetime  
set @@ ScriptRunDate = DATEADD(mm,DATEDIFF(mm, 0 ,GETDATE()), 0
选择 @@ ScriptRunDate
IF @@ ScriptRunDate
update Cssscript set ScriptState = ' < span class =code-string> Active' 其中 id = ' Adhoc'
ELSE
update Cssscript set ScriptState = ' InActive' 其中​​ id = ' Adhoc'

然而,IF部分仍然是错误的......你可能想要像

  IF   @@ ScriptRunDate   = GETDATE()  -   或其他  


它不是礼貌地要求人们猜测你得到的23,235,331,213可能的错误中的哪一个。但是,我会采取刺。它就是Case WHEN。



如果看起来你真的想要使用IF声明。



  IF  someCondition 
BEGIN
更新 ...
END
ELSE
BEGIN
更新 ...
< span class =code-keyword> END


安排实际想要运行的脚本并将其另存为存储的最简单方法过程,然后创建一个SQL代理作业,以便在每个月的第一天上午9点执行该脚本。



创建一份工作 [ ^ ]

I have to prepare a script which will run only on 1st day of the every month at 9PM IST and rest other days it will not run.

See script below. I am getting error in executing it.
Please suggest correct way to do .

What I have tried:

Declare @@ScriptRunDate  datetime
 set @@ScriptRunDate=  DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0) 
 select @@ScriptRunDate
Case when 
@@ScriptRunDate
 then 
  update Cssscript set ScriptState='Active' where id='Adhoc'
else 
update Cssscript set ScriptState='InActive' where id='Adhoc'

解决方案

You are getting two errors:

Incorrect syntax near the keyword 'Case'.
and
Incorrect syntax near the keyword 'else'.


This should give you a clue that you are using the wrong construct. You actually want to use an IF-Statement - see IF...ELSE (Transact-SQL) | Microsoft Docs[^]. Something like

Declare @@ScriptRunDate  datetime
 set @@ScriptRunDate=  DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0) 
 select @@ScriptRunDate
IF @@ScriptRunDate 
	update Cssscript set ScriptState='Active' where id='Adhoc'
ELSE 
	update Cssscript set ScriptState='InActive' where id='Adhoc'

However the IF part is still wrong ... you probably want something like

IF @@ScriptRunDate = GETDATE() -- or whatever 


It is not polite to ask people to guess which of the 23,235,331,213 possible errors you are getting. However, I will take a stab. It is at the Case WHEN.

If looks like you actually want to use an IF statement.

IF someCondition
  BEGIN
    UPDATE ...
  END
ELSE 
  BEGIN
    UPDATE  ...
  END


The easiest way to schedule the script you actually want to run and save it as a Stored Procedure, and then create an SQL Agent Job to execute that script on the first day of the month at 9AM.

Create a Job[^]


这篇关于如何更新表格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆