2010-10-27 36 views
5

Recibo un error con lo que debería ser una consulta simple para insertar datos. He hecho la búsqueda, pero por mi vida, no puedo entender qué está pasando. Aquí está mi SQL:Conversión fallida al convertir el valor varchar a int

IF OBJECT_ID('settings') IS NOT NULL 
DROP TABLE [settings] 
CREATE TABLE [settings] (
    [id] [bigint] IDENTITY(1,1) NOT NULL PRIMARY KEY, 
    [tenant_id] [bigint] NOT NULL, 
    [name] [varchar](32) NOT NULL, 
    [value] [varchar](255) NOT NULL 
) 

INSERT INTO settings 
     (name, value, tenant_id) 
     VALUES 
     ('from_email' , '', 1), 
     ('dash_rss', '', 1), 
     ('theme', '', 1), 
     ('version', '0.84', 1), 
     ('iphone_theme', '', 1), 
     ('enable_sandbox_number', 1, 1), 
     ('twilio_endpoint', 'https://api.twilio.com/2008-08-01', 1); 

Y el error que consigo es: Error de conversión al convertir el valor varchar '0.84' a tipo de datos int.

¿Por qué está tratando de convertir esto a int cuando la columna es varchar?

Respuesta

4

Me pregunto si SQL Server está tratando de ser más astuto que usted. Noté que su fila 'enable_sandbox_number' incluye un número entero para el segundo parámetro. Quizás SQL Server se está convirtiendo a int debido a eso. ¿Puedes cambiar 1 a '1' en esa fila?

+0

Eres un genio. Eso solucionó el problema. ¡Gracias! – Allen

+0

Gracias, me estaba volviendo loco tratando de ver lo que estaba haciendo mal. loco cómo algo tan pequeño puede causar problemas importantes. – Eman

0

Interesante que el 1 en ('enable_sandbox_number', 1, 1) no está citado. Presumiblemente funciona bien. ¿Qué ocurre si prueba 0.84 sin comillas?