Sql Server Management Studio - Creazione programmatica di script basati su DAL; Perché usare SET ANSI_NULLS ON prima di ogni tabella
-
22-07-2019 - |
Domanda
Sto cercando di generare gli script SQL per la creazione di tabelle a livello di codice sulla base di definizioni di classe nel mio DAL simili a SQL Server Management Studio.
Quindi, quando faccio clic con il tasto destro su una tabella in MS SMS, e dico alla tabella di script come > Crea in > nuova finestra di query, genera un codice molto comprensibile. Tuttavia, non sono sicuro del motivo per cui generano alcune delle seguenti righe:
- IMPOSTA ANSI_NULLS SU
- IMPOSTA QUOTED_IDENTIFIER SU
- SET ANSI_PADDING ON
- {LA TABELLA DEF VA QUI} ??
- DISATTIVARE ANSI_PADDING
Ho consultato queste dichiarazioni nella documentazione del prodotto e capire a cosa servono, ma non sono sicuro del motivo per cui sono generati attorno a ciascuna dichiarazione di tabella.
Soluzione
Queste impostazioni sono memorizzate con la definizione della tabella o del codice. Se imposti questi in un proc memorizzato, vengono ignorati in fase di esecuzione.
Quindi, se si esegue lo script della tabella, è necessario eseguire lo script anche delle impostazioni. Soprattutto se hai anche calcolato colonne ecc.