我第一次写一个触发器,任何人都可以帮我解决这个问题
我想要实现的是,我创建了一个包含5列的数据库表。使用插入查询我将值插入2列,我希望使用此插入,应自动填充其他3列的值。为此我想创建一个触发器来计算时间和销售额的总和和平均值(分别在数据库表中定义两列),即当我们输入时间和销售额时,则还应计算总和和平均值(单独计算时间和销售额)然后当我们选择表时,它应该显示所有四个条目(时间,销售额,总和,平均值)。
现在我正在使用触发器:
ALTER TRIGGER [dbo].[trgInsert] ON [dbo].[tblEvalutionData]
for insert
AS
BEGIN
insert into tblEvalutionData (AverageSales,TotalSales,TotalTime)
select avg(Sales) as AverageSales, sum(Sales) as TotalSales,sum(ElapsedTime)as TotalTime from inserted
END
当我写这个查询时
插入tblName(时间,销售)值(5,34)并执行此操作,结果为:
Time Sales SumSales AverageSales
5 34 null null
null null 34 34
6 14 null null
null null 48 24
我该如何解决这个问题?或者还有其他办法吗?
答案 0 :(得分:2)
请勿使用触发器!
SQL Server支持calculated columns。对于聚合,您可以使用indexed views。
但是,我认为你对你要做的事情非常困惑。
如果您想汇总单个插入的行,我可以向您保证SUM
和AVERAGE
将等于Sales
字段。
请提供更多关于您要完成的内容的信息(只需编辑要添加的问题),我们就可以提供答案。