SQL SERVER 2005 e la funzionalità (implicita) della Trim()

Published 4 November 8 11:18 AM | Tommaso Caldarola

Causa bug avuto in pre-produzione ho notato che installando SQL SERVER 2005 e lasciando tutte le opzioni di default i seguenti statement sql si comportano allo stesso modo

select * from tabella where code = 'tommaso'

select * from tabella where code = 'tommaso ' (notare lo spazio finale)

Comportamentio già presente in SQL SERVER 2000, per me inaccettabile!!!

L'operatore Like si comporta correttamente invece.

Filed under:

Comments

# davcup said on November 4, 2008 4:53 AM:

perchè non scrivi su quali impostazioni si deve agire per modificare il comportamento?

Perchè se è un'impostazione legata alla connessione tutto sommato non mi sembra un dramma

# Tommaso Caldarola said on November 4, 2008 5:53 AM:

Si certo, bisogna agire sulla proprietà ANSI_PADDING (msdn.microsoft.com/.../aa259201(SQL.80).aspx), ma quello che mi lascia perplesso è che di default (ho appena creato un nuovo DB) tale proprietà, visibile tra le opzioni del database è False, mentre sui Books on line è espressamente citato che è raccomandabile avere questa opzione a True... bah!

Nota: la proprietà non è legata alla connessione, l'impostazione ha effetto solo al momento della creazione della colonna e la si può impostare colonna per colonna.