2010-10-27 25 views
5

Viene visualizzato un errore con la query semplice da inserire per inserire dati. Ho fatto ricerche, ma per la vita di me, non riesco a capire che cosa sta succedendo. Ecco il mio SQL:Conversione non riuscita durante la conversione del valore varchar in 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); 

E l'errore che ottengo è: Conversione non riuscita durante la conversione del valore varchar '0.84' per tipo di dati int.

Perché sta cercando di convertire questo in int quando la colonna è varchar?

risposta

4

Mi chiedo se SQL Server stia cercando di sorprendervi qui. Ho notato che la tua riga 'enable_sandbox_number' include un intero per il secondo parametro. Forse SQL Server sta convertendo in int a causa di questo. È possibile modificare 1 in '1' in quella riga?

+0

Sei un genio. Questo ha risolto il problema. Grazie! – Allen

+0

Grazie, stavo impazzendo a cercare di vedere cosa stavo facendo male. pazzo come qualcosa di minore può causare problemi importanti. – Eman

0

Interessante che il valore 1 in ('enable_sandbox_number', 1, 1) non sia quotato. Presumibilmente funziona bene. Cosa succede se provi 0.84 non quotati?

Problemi correlati