我在SQL Server 2005中有一个表,其中包含一些项目的一些更新日志数据。由于有数百个项目,因此可以将这些数据存储在一张表中,并且可以查询项目日志表,查看每天或每人的活动等情况。表中的多个序列ID号
如
projectlogidentity int identity
projectname nvarchar(100)
projectchanged datetime
projectchangedby nvarchar(100)
projectserial int
上有项目名称索引和projectserial
我要生成每个项目顺序projectserial作为行添加
如:
0 |咖啡店| 2011年1月7日08:13 | derek | 0
1 |迪斯科| 2011年1月7日08:18 |艾玛| 0
2 |咖啡店| 2011年1月7日08:19 |彼得| 1
3 |迪斯科| 2011年1月7日09:11 |艾伦| 1
4 |咖啡店| 2011年1月7日09:42 |苔丝| 2
所以,当通过projectname检索单个项目的行时,每个特定于该项目名称的行都有一个持续的序列号。
插入行后,我做目前:
update projectlog set projectserial=1+
(select isnull(max(projectserial),0) from projectlog
where projectname='coffee shop') where (projectlogidentity=4);
,但我很担心性能时,该表将包含数百个项目的几千行和数百人。有没有更好的办法?
感谢
德里克
此触发器不适用于多行插入。 – 2011-01-07 10:30:09
我没有测试过这个,但它应该为插入的每一行运行,请纠正,如果我错了..我不确定有关批量插入,虽然 – Gaven 2011-01-07 10:34:48