2016-05-12 49 views
0

我有一个如此奇怪的问题。当我执行(通过PHP或直接通过SQL)这样一句话:SQL更新不会使用给定值更新

UPDATE event SET adGroupId = 23903638857 WHERE id = 1 

它不工作,并且eventId = 1adGroupId = 2147483647

总是相同的,逐行更新。它可能是一个SQLcaché问题,或类似的东西?

我真的不明白这个问题...

+0

adGroupId列的数据类型是什么? – Pred

+1

'事件'是保留关键字使用'UPDATE [event] SET adGroupId = 23903638857 WHERE id = 1' – wiretext

+0

@tinka甚至可以用模式名称作为前缀? (如果有..) –

回答

3

如果adGroupId列的数据类型是INT然后将它与一个足够大的数字计数变成BIGINTDECIMAL

2,147,483,647是INT列可以存储的最大值,而23903,638,857大于此值,因此SQL Server会截断它(并且您肯定会在某处发出警告)。

BIGINT可以存储从-9,223,372,036,854,775,808到9,223,372,036,854,775,807的整数值。

有关进一步参考:https://msdn.microsoft.com/en-us/library/ms187745.aspx