更新/插入SQL Server数据库表

问题描述:

我有一个用C#编写的SQL Server数据库程序。在数据库中有一个包含3列的表(ProcessData):ID(PK,auto-ID),Start(DateTime),End(DateTime)。更新/插入SQL Server数据库表

还有很多线程会每隔几分钟/秒将新行插入数据库表(ProcessData)。

我想在开始时仅插入ID和开始列,并在几分钟/秒后根据ID添加结束列。

我该怎么做?

非常感谢,

所以你想插入新行,捕获新创建的ID,并在稍后更新行?

像这样的事情

DECLARE @NewID INT 

INSERT INTO dbo.tblProcessData(Start) VALUES (@Start) 
SELECT @NewID = SCOPE_IDENTITY() 

,稍后:

UPDATE dbo.tblProcessData 
SET End = @End 
WHERE ID = @NewID 

是你在找什么?

除非我失去了一些东西,你可以只是做一个INSERT语句在开始

INSERT INTO tblProcessData (Start) VALUES (@Start) 

再到后来的更新语句

UPDATE tblProcessData SET [email protected] WHERE [email protected] 

有很多方法去皮猫,但这是T-SQL方式之一

+0

好了,比所有强大的问题:如何从一个INSERT语句的ID? – Oliver 2010-05-06 08:50:26

+3

SCOPE_IDENDITY()函数包含作用域的最后插入的ID。选择它;) – TomTom 2010-05-06 08:51:13

+0

marc_s留下的答案是我的更完整的版本,其中包括返回ID等 – 2010-05-06 09:06:54

你的表 过程数据包含

ID(PK, auto-ID) 
Start(DateTime) 
End(DateTime) 

查询

Insert Into ProcessData(Start) values (your value) 

After some time 

Update ProcessData Set End=(your value) where ID= (your ID)