Perché SQL Server sta deprecando SET ANSI_PADDING OFF?
-
06-07-2019 - |
Domanda
Secondo MSDN BOL (Books Online) su SET ANSI_PADDING
,
In una versione futura di Microsoft SQL Server ANSI_PADDING sarà sempre ON e tutte le applicazioni che impostano esplicitamente l'opzione su OFF produrranno un errore. Evita di utilizzare questa funzione nel nuovo lavoro di sviluppo e pianifica di modificare le applicazioni che attualmente utilizzano questa funzione.
Non ho mai usato questa opzione ma sembra che possa effettivamente salvare molti spazi del database per i campi char
e varbinary
se usato correttamente.
Perché SET ANSI_PADDING
sta diventando obsoleto, a parte il fatto che non è conforme ANSI?
Ci sono dei buoni motivi per cui?
Soluzione
Non una risposta, solo un'opinione:
Personalmente vorrei credere che lo stiano rimuovendo perché è un dolore nullo nel nulla. Se un oggetto di database viene creato, utilizzato, referenziato o qualsiasi altra cosa con esso ON, un secondo viene fatto con esso OFF e si tenta di lavorare con entrambi contemporaneamente (due tabelle, tabella di riferimento alla procedura, ecc.), i tuoi risultati potrebbero essere incoerenti o non avere senso e ti occorrerà per sempre per capire cosa sta succedendo.
(Esistono altre impostazioni SET come questa e, peggio ancora. Spero che le abbiano eliminate tutte.)
Altri suggerimenti
Quella funzione non è stata utilizzata affatto e non è conforme anche ANSI, quindi la rimuoveranno. Lo spazio risparmiato può essere effettuato indipendentemente da ansi_padding, il server sql può rimuovere il padding internamente.