Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/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表,同时向日期字段添加30天_Sql_Sql Server - Fatal编程技术网

将数据插入SQL server表,同时向日期字段添加30天

将数据插入SQL server表,同时向日期字段添加30天,sql,sql-server,Sql,Sql Server,我想做的是: 我正在为一个班级项目建立一个库存系统。我正在尝试加载所有一组默认数据(包括设备ID和无可用设备时可用的设备数量),并更改日期以保持一个持续的数据库,该数据库在未来30天内随时跟踪可用性 我是如何做到这一点的: 我的教授(他是一个相当不需要动手的人)在SQL Management Studio中启用了对SQL Job Agent的访问,我目前正在构建一个语句,允许我复制所有提到的默认数据,并将其重新添加到数据库中,但在日期列中添加30天。我想先让这句话起作用,然后再把它变成程序 我所

我想做的是:

我正在为一个班级项目建立一个库存系统。我正在尝试加载所有一组默认数据(包括设备ID和无可用设备时可用的设备数量),并更改日期以保持一个持续的数据库,该数据库在未来30天内随时跟踪可用性

我是如何做到这一点的:

我的教授(他是一个相当不需要动手的人)在SQL Management Studio中启用了对SQL Job Agent的访问,我目前正在构建一个语句,允许我复制所有提到的默认数据,并将其重新添加到数据库中,但在日期列中添加30天。我想先让这句话起作用,然后再把它变成程序

我所拥有的:

insert into EquipmentAvailabilities(Date, NumberAvailable, EquipmentId)
values((GETDATE()+30), 
(select NumberAvailable, EquipmentId from EquipmentAvailabilities));
短信给了我什么:

Msg 116, Level 16, State 1, Line 15
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
Msg 109, Level 15, State 1, Line 13
There are more columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.
我的尝试:我只是在弄清楚如何获取日期后才尝试了以下几点

insert into EquipmentAvailabilities(Date, NumberAvailable, EquipmentId)
values((GETDATE()+30), 
(select NumberAvailable from EquipmentAvailabilities), 
(select  EquipmentId from EquipmentAvailabilities));

您在这里的查询中混淆了内容。不要在约会数学中使用快捷方式

insert into EquipmentAvailabilities
(
    Date
    , NumberAvailable
    , EquipmentId
)
select dateadd(day, 30, getdate())
    , NumberAvailable
    , EquipmentId 
from EquipmentAvailabilities

如果要在日期列中添加30天,则不要使用
getdate()


您使用的是MySQL还是MS SQL Server?(不要给未涉及的产品贴标签。)
插入t(c1、c2、c3)选择这是获取所有条目并复制它们,我需要将其缩小到每个设备的默认值。现在,如果我有58个条目,那么运行命令itll have 116。如果我再运行一次,它将有232个。我如何将其限制为仅58件(无论如何可能是件)?带有where子句?仅选择唯一的设备ID?我尝试了一个where equipmentId=unique,但无法识别。我不知道如何只选择默认的equipmentId,我也不知道,因为我不知道您的表结构是什么。也许你有一个IsDefault专栏?也许你想要每个设备ID的最早日期?当然,如果equipmentId=unique不起作用,因为这没有任何意义。
insert into EquipmentAvailabilities (Date, NumberAvailable, EquipmentId)
    select dateadd(day, 30, date),
           NumberAvailable, EquipmentId
    from EquipmentAvailabilities;