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