2015-10-15 59 views
-2

我有这个疑问:的Sql算术溢出

Insert into Course(name,age,id,facebookuser) 
Values('Example',25,204813,[email protected]), 
('Exmnumtwo',35,504813,[email protected]) 

这给我的错误8115:“算术溢出错误将表达式转换为数据类型为int”。

但是,当我删除','标志时,一切正常,没有任何错误。什么导致了错误?

+0

'INSERT INTO课程(姓名,年龄,身份证,facebookuser) VALUES( '例',25,204813, 'blalbla @ walla.com'), ('Exmnumtwo',35,504813,'email @ walla.com')' – lad2025

+0

@ lad2025我没有看到我们的代码之间的任何区别。帮帮我 ? – Antonio

+0

您需要将引号添加到电子邮件地址! – spirographer

回答

0

基础上,PNG,你送我http://up415.siz.co.il/up3/tm3jjmurzzmx.png

,你需要确保你的ID融入数据大小。您的实际数据会溢出32位有符号整数,因此您需要将您的id类型设为64位(或32位无符号)或选择具有较小号码的ID,如上例所示,因为您未引用电子邮件地址而失败。

+0

我不喜欢不相信。我真是个白痴。这是错误。我怎么能给id变量64位? (对不起床英语。) – Antonio

+0

当你定义模式时,尝试bigint类型。请选择我的答案作为正确的时候完成:) – spirographer

+0

@spirographer我做了你的答案。我还有一个问题,如果你能帮助我,我会很高兴。当我使用where“something”= string时,我必须使用where“something”like string,如果我使用=它给我一个错误。什么问题使用=而不是像? – Antonio

2

看起来您的Course表的id字段可能设置为smallint,其最大值为32,767。

id字段的数据类型设置为int以将最大值增加到2,147,483,647。在SQL Server

列表整数数据类型:https://msdn.microsoft.com/en-AU/library/ms187745.aspx

+0

是的!这是问题! – Antonio

+1

太棒了!很高兴为你工作。 :)如果它解决了问题,请确保您将答案标记为已接受。 – Nerdwood