Condividi tramite


Riferimento all'API dell'istanza del database locale di SQL Server ExpressSQL Server

In SQL Server basato su servizi, tradizionale, le singole istanze di SQL Server installate in un solo computer sono separate fisicamente; ovvero, ogni istanza deve essere installata e rimossa separatamente. Inoltre, ciascuna istanza dispone di un set separato di file binari e si esegue in un processo del servizio separato. Il nome dell'istanza di SQL Server viene utilizzato per specificare l'istanza di SQL Server a cui l'utente desidera effettuare la connessione.

Nell'API dell'istanza del database locale di SQL Server Express viene utilizzato un modello di istanza semplificato e leggero. Anche se le istanze del database locale singole sono separate sul disco e nel Registro di sistema, in esse viene utilizzato lo stesso set di file binari condivisi del database locale. Inoltre, nel database locale non vengono utilizzati servizi. Le istanze del database locale vengono avviate su richiesta tramite le chiamate API dell'istanza del database locale. Nel database locale il nome dell'istanza viene utilizzato per specificare quali delle istanze del database locale l'utente desideri utilizzare.

Un'istanza del database locale è sempre di proprietà di un solo utente ed è visibile e accessibile solo dal contesto di questo utente, a meno che non sia abilitata la condivisione dell'istanza.

Anche se tecnicamente le istanze del database locale non corrispondono a istanze di SQL Server tradizionali, l'utilizzo previsto è simile. Vengono denominate istanze per enfatizzare questa somiglianza e per renderle più intuitive agli utenti di SQL Server.

Il database locale supporta due tipi di istanze, ovvero automatiche e denominate. L'identificatore per un'istanza del database locale è il nome dell'istanza.

Istanze automatiche del database locale

Le istanze automatiche del database locale sono "pubbliche". Vengono create e gestite automaticamente per l'utente e possono essere utilizzate da qualsiasi applicazione. Un'istanza automatica del database locale esiste per ogni versione del database locale installato nel computer dell'utente.

Le istanze automatiche del database locale forniscono una gestione continua dell'istanza. L'utente non deve creare l'istanza; in questo modo egli può facilmente installare applicazioni ed eseguire la migrazione a computer diversi. Se nel computer di destinazione è installata la versione specificata del database locale, l'istanza automatica di tale database per quella versione è disponibile anche su quel computer.

Gestione dell'istanza automatica

Un utente non deve creare un'istanza automatica del database locale. L'istanza viene creata al momento dell'utilizzo, purché la versione specificata del database locale sia disponibile nel computer dell'utente. Dal punto di vista dell'utente, l'istanza automatica è sempre presente se sono disponibili file binari del database locale.

Per le istanze automatiche sono valide anche altre operazioni di gestione dell'istanza, quali eliminazione, condivisione e non condivisione. In particolare, l'eliminazione di un'istanza automatica consente di reimpostare in modo efficiente l'istanza, che verrà ricreata alla successiva operazione di avvio. L'eliminazione di un'istanza automatica può essere necessaria nel caso in cui i database di sistema siano danneggiati.

Regole di denominazione dell'istanza automatica

Le istanze automatiche del database locale dispongono di un modello speciale per il nome dell'istanza che appartiene a uno spazio dei nomi riservato. È necessario evitare conflitti di nomi con le istanze denominate del database locale.

Il nome dell'istanza automatica è il numero di versione di rilascio di base del database locale preceduto da un solo carattere "v", simile a "v" più due numeri con un punto tra loro; ad esempio, v11.0 o V12.00.

Esempi di nomi di istanze automatiche non consentiti sono:

  • 11.0 (carattere "v" mancante all'inizio)

  • v11 (punto e secondo numero della versione mancanti)

  • v11. (secondo numero di versione mancante)

  • v11.0.1.2 (numero di versione con più di due parti)

Istanze denominate del database locale

Le istanze denominate del database locale sono "private", ovvero un'istanza è di proprietà di una sola applicazione, responsabile della creazione e della gestione dell'istanza. Le istanze denominate del database locale forniscono isolamento e migliorano le prestazioni.

Creazione di istanze denominate

L'utente deve creare istanze denominate in modo esplicito tramite l'API di gestione del database locale o in modo implicito tramite il file app.config per un'applicazione gestita. È possibile che in un'applicazione gestita venga utilizzata anche l'API.

Ogni istanza denominata dispone di una versione associata del database locale, ovvero che punta a un set specificato di file binari del database locale. La versione per l'istanza denominata viene impostata durante il processo di creazione dell'istanza.

Regole di denominazione dell'istanza denominata

Il nome di un'istanza del database locale può essere composto da un massimo di 128 caratteri (il limite viene imposto dal tipo di dati sysname). Si tratta di una differenza significativa rispetto ai nomi di istanze di SQL Server tradizionali, che sono limitati a nomi NetBIOS di 16 caratteri ASCII. Il motivo di questa differenza è che i database vengono trattati dal database locale come file, pertanto viene applicata una semantica basata su file, in modo che sia intuitiva per gli utenti affinché abbiano più libertà nella scelta di nomi dell'istanza.

Nel nome di un'istanza del database locale può essere incluso qualsiasi carattere Unicode che sia valido all'interno del componente del nome del file. Tra i caratteri non consentiti in un componente del nome del file sono inclusi generalmente i seguenti: caratteri ASCII/Unicode compresi tra 1 e 31, nonché virgolette ("), simboli minore di (<) e maggiore di (>), barra verticale(|), backspace (\b), tabulazione (\t), due punti (:), asterisco (*), punto interrogativo (?), barra rovesciata (\) e barra (/). Si noti che il carattere Null (\0) è consentito perché utilizzato per la chiusura della stringa. Tutti i caratteri successivi al primo carattere Null verranno ignorati.

[!NOTA]

L'elenco di caratteri non consentiti può dipendere dal sistema operativo e può essere modificato nelle versioni successive.

Gli spazi vuoti iniziali e finali nei nomi dell'istanza vengono ignorati e saranno tagliati.

Per evitare conflitti di denominazione, le istanze denominate del database locale non possono avere un nome che segue lo schema di denominazione per le istanze automatiche, come descritto precedentemente nell'argomento "Regole di denominazione dell'istanza automatica". Un tentativo di creazione di un'istanza denominata con un nome che segue il modello di denominazione dell'istanza automatica consente di creare in modo efficiente un'istanza predefinita.

Argomenti di riferimento al database locale di SQL Server Express