C# 更新/插入SQL Server数据库表
我有一个用C#编写的程序,带有SQL Server数据库。数据库中有一个表(C# 更新/插入SQL Server数据库表,c#,sql-server,C#,Sql Server,我有一个用C#编写的程序,带有SQL Server数据库。数据库中有一个表(ProcessData),有3列:ID(主键,自动ID)、Start(日期时间)、End(日期时间) 还有许多线程每隔几分钟/秒将新行插入数据库表(ProcessData) 我只想在开头插入ID和Start列,然后根据ID在几分钟/秒后添加End列 我该怎么做 非常感谢,除非我遗漏了什么,否则您可以在开始时执行一个insert语句 INSERT INTO tblProcessData (Start) VALUES (@S
ProcessData
),有3列:ID
(主键,自动ID)、Start
(日期时间)、End
(日期时间)
还有许多线程每隔几分钟/秒将新行插入数据库表(ProcessData
)
我只想在开头插入ID和Start列,然后根据ID在几分钟/秒后添加End列
我该怎么做
非常感谢,除非我遗漏了什么,否则您可以在开始时执行一个insert语句
INSERT INTO tblProcessData (Start) VALUES (@Start)
然后,稍后将生成一个update语句
UPDATE tblProcessData SET End=@End WHERE ID=@ID
有许多方法可以剥猫皮,但这是T-SQL方法之一,因此您希望插入新行,捕获新创建的ID,然后更新该行 像这样的
DECLARE @NewID INT
INSERT INTO dbo.tblProcessData(Start) VALUES (@Start)
SELECT @NewID = SCOPE_IDENTITY()
后来:
UPDATE dbo.tblProcessData
SET End = @End
WHERE ID = @NewID
这就是你要找的吗???你的桌子
处理数据包含
ID(PK, auto-ID)
Start(DateTime)
End(DateTime)
质疑
好的,还有一个非常重要的问题:如何从insert语句中获取ID?SCOPE_IDENDITY()函数包含范围的最后一个插入ID。选择它;)marc_s留下的答案是我的更完整版本,包括返回ID等
Insert Into ProcessData(Start) values (your value)
After some time
Update ProcessData Set End=(your value) where ID= (your ID)