Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 从案例结果写入数据库_Sql Server 2008_Tsql_Stored Procedures - Fatal编程技术网

Sql server 2008 从案例结果写入数据库

Sql server 2008 从案例结果写入数据库,sql-server-2008,tsql,stored-procedures,Sql Server 2008,Tsql,Stored Procedures,我想根据案例的结果更新数据库,但是我的“If”语句似乎没有从正确的表中提取信息 declare @dt datetime set @dt = GETDATE() select Ugenummer = datepart(wk, @dt) - datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1, case when (datepart(wk, @dt) - datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0

我想根据案例的结果更新数据库,但是我的“If”语句似乎没有从正确的表中提取信息

declare @dt datetime 
set @dt = GETDATE()
select
Ugenummer = datepart(wk, @dt) - datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1,
case when (datepart(wk, @dt) - datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1) % 2 = 1
     then 'ulige' else 'lige' end Ugelighed; 
上面的代码获取weeknumber(ugenummer)并确定它是奇数还是偶数(Ulige/lige)


我想使用第一个代码中的信息更新SQL 2008 server中的数据库

您没有使用Ugenummer,因此我将其编辑掉。还为Ugelighed创建了一个变量,但您忘记创建一个:

declare @dt datetime 
set @dt = GETDATE()
declare @Ugelighed VARCHAR(5);
select
@Ugelighed=case when (datepart(wk, @dt) - datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1) % 2 = 1
     then 'ulige' else 'lige' end;
在下面的语句中,我使用变量
@Ugelighed
ulige
进行比较,但是它是
VARCHAR
,因此需要将它括在单引号中(
'
)。与
Lægenavn
相同,它是一个
VARCHAR
,因此用单引号将其括起来:

IF @Ugelighed = 'ulige' and datepart(dw,@dt) = 1
    UPDATE laeger
    SET Antal=1
    WHERE Navn='Lægenavn'

就我个人而言,我会为
@Ugelighed
创建一个
字段,因为偶数/奇数可以被捕获为一个简单的布尔值而不是文本。

不要在这里抛出代码。请解释它的作用,以及它如何在您使用SQL Server时不起作用?SQL Server的哪个版本?代码的第一部分现在可以工作了!(不确定如何将案例分配给变量)但第二部分,即我要更新表的部分仍然不起作用。它返回错误:关键字“THEN”附近的语法不正确。@Mclovin Oops,
THEN
未在
IF/ELSE
语句中使用。更新了我的答案。我的复制/粘贴速度太快了。非常感谢!现在它的功能如预期的那样
IF @Ugelighed = 'ulige' and datepart(dw,@dt) = 1
    UPDATE laeger
    SET Antal=1
    WHERE Navn='Lægenavn'