我尝试在条件下更新多个列值,但它只更新了单个列。我无法弄清楚为什么它没有更新所有列。
这是我的SP。
declare @p3 dbo.UpdateIdeaInline
insert into @p3 values(N'15',N'Validity',N'1')
insert into @p3 values(N'15',N'DeadLine',N'15-Jun-2017')
insert into @p3 values(N'14',N'Validity',N'0')
insert into @p3 values(N'14',N'DeadLine',N'15-Jun-2017')
exec MIC_UpdateIdeaInline @UpdatedBy=1,@UpdatedOn='2017-06-06 21:45:19.863',@UpdateRecords=@p3
go
调用SP时,这些是我的参数。
start = input("Please enter a starting value: ")
print("exp res\n1 " + str(int(start)**1) + "\n")
print("2 " + str(int(start)**2) + "\n")
print("3 " + str(int(start)**3) + "\n")
print("4 " + str(int(start)**4) + "\n")
UpdateIdeaInline 是表格类型。它的第一列包含
ColumnValue
正如您所看到的,我想为相同的ID 14和15更新Column(validity和DeadLine)。但它只更新了有效性列。
答案 0 :(得分:0)
那是因为您的更新是单原子事务。 Update语句将表更新两次,因为在UpdateRecords表中ID是重复的。因此,在第二次更新时,它无法读取第一次更新更新的值。
实施例: 你有10和15的值。
现在您发布一个UPDATE加入UpdateRecord表,该表具有两个相同的ID,但每个ID用于不同的列。
E.g。 UpdateRecord有 'Col1',30 'Col2',40
首次更新后:
10 - > 30(待定)
15 - > 15(待定)
第二次更新后:
10 - > 10(待定)
15 - > 40(待定)
提交交易后:
10 - →10
15 - →40