Gestione di SQL Server Desktop Engine (MSDE 2000) o di SQL Server 2005 Express Edition mediante l'utilitÓ osql

Traduzione articoli Traduzione articoli
Identificativo articolo: 325003 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

SQL Server Desktop Engine, anche noto come MSDE 2000, non Ŕ dotato di un'interfaccia propria dal momento che Ŕ stato essenzialmente progettato per essere eseguito in background. Gli utenti interagiscono con MSDE 2000 attraverso il programma in cui Ŕ incorporato. Il solo strumento incluso in MSDE 2000 Ŕ l'utilitÓ osql. Il file eseguibile, Sql.exe, Ŕ contenuto nella cartella MSSQL\Binn nel caso di un'istanza predefinita di MSDE 2000. Questo articolo riguarda in modo particolare la gestione di MSDE 2000 mediante l'utilitÓ osql.

Se si utilizza SQL Server 2005, Ŕ inoltre possibile utilizzare l'utilitÓ osql per gestire SQL Server 2005 Express Edition. Tuttavia, questa funzionalitÓ verrÓ rimossa in una versione futura di Microsoft SQL Server 2005. ╚ consigliabile non utilizzare questa funzionalitÓ in nuovi progetti di sviluppo e prevedere la modifica delle applicazioni che attualmente utilizzano tale funzionalitÓ. Utilizzare invece l'utilitÓ Sqlcmd. Per ulteriori informazioni sull'utilizzo dell'utilitÓ Sqlcmd, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/ms170207.aspx

Descrizione di osql

L'utilitÓ osql Ŕ un'utilitÓ del prompt dei comandi di Microsoft Windows 32 utilizzabile per eseguire istruzioni e script Transact-SQL. Per le comunicazioni tra l'utilitÓ osql e il server viene utilizzata l'API (Application Programming Interface) del database ODBC.

Utilizzo di osql

In genere, l'utilitÓ osql viene impiegata nei modi seguenti:
  • Gli utenti immettono istruzioni Transact-SQL in modo interattivo, analogamente a quando utilizzano il prompt dei comandi.
  • Gli utenti inviano un processo di osql:
    • Specificando una singola istruzione Transact-SQL da eseguire. Oppure

    • Facendo riferimento a un file di script contenente istruzioni Transact-SQL da eseguire.

Immissione interattiva di istruzioni Transact-SQL

Per visualizzare un elenco delle opzioni (facenti distinzione tra maiuscole e minuscole) dell'utilitÓ osql, digitare la stringa seguente al prompt dei comandi e premere INVIO:

osql -?

Per ulteriori informazioni su ciascuna opzione dell'utilitÓ osql, vedere il relativo argomento nella documentazione in linea di SQL Server.

Per immettere istruzioni Transact-SQL in modo interattivo, attenersi alla seguente procedura:

  1. Verificare che MSDE 2000 sia in esecuzione.
  2. Connettersi a MSDE 2000. Per ulteriori informazioni, vedere la sezione "Connessione a SQL Server Desktop Engine (MSDE 2000)" di questo articolo.
  3. Al prompt di osql digitare le istruzioni Transact-SQL, quindi premere INVIO. Quando si preme INVIO al termine di ogni riga di input, le istruzioni digitate vengono memorizzate nella cache.

    • Per eseguire le istruzioni contenute nella cache, digitare "Go" e premere INVIO.

    • Per eseguire un batch di istruzioni Transact-SQL, immettere ciascun comando Transact-SQL in righe distinte. Quindi, digitare "Go" all'ultima riga per indicare la fine del batch ed eseguire le istruzioni memorizzate nella cache.

    I risultati saranno visualizzati nella finestra della console.

  4. Per uscire da osql, digitare QUIT o EXIT e premere INVIO.

Invio di un processo di osql

In genere, l'invio di un processo di osql viene effettuato in uno dei due modi seguenti: ╚ possibile:
  • Specificare una singola istruzione Transact-SQL.

    Oppure

  • Fare riferimento a un file di script.
Di seguito sono fornite ulteriori informazioni su ciascuno dei metodi.

Specificazione di una singola istruzione Transact-SQL

Per eseguire un'istruzione Transact-SQL nell'istanza predefinita locale di MSDE 2000, digitare un comando analogo al seguente

osql -E -q "istruzione Transact-SQL"

dove

  • -E specifica l'utilizzo dell'autenticazione di Microsoft Windows NT.

    e

  • -q esegue l'istruzione Transact-SQL, ma non esce da osql al termine della query.
Per eseguire l'istruzione Transact-SQL e uscire da osql, utilizzare l'argomento -Q anzichÚ -q.

Riferimento a un file di script

Per fare riferimento a un file di script, attenersi alla seguente procedura:
  1. Creare un file di script contenente un batch di istruzioni Transact-SQL, ad esempio Query.sql.
  2. Aprire un prompt dei comandi, digitare un comando analogo al seguente e premere INVIO

    osql -E -i file_input

    dove

    file_input Ŕ il percorso completo del file di script. Se, ad esempio, il file di script Query.sql Ŕ contenuto nella cartella C:\Query, sostituire il parametro file_input con C:\Query\Query.sql.

    I risultati del file di script saranno visualizzati nella finestra della console. Se si desidera scrivere i risultati su un file, aggiungere l'argomento -ofile_output al comando precedentemente indicato. Ad esempio:

    osql -E -i file_input -o file_output

    dove

    file_output Ŕ il percorso completo del file di output.

    Per rimuovere i simboli di numerazione e di prompt dall'output, aggiungere l'opzione -n al comando precedentemente indicato. Ad esempio:

    osql -E -i file_input -o file_output -n

Connessione a SQL Server Desktop Engine (MSDE 2000)

Per connettersi a MSDE 2000, attenersi alla seguente procedura:
  1. Verificare che MSDE 2000 sia in esecuzione.
  2. Aprire un prompt dei comandi sul computer in cui Ŕ contenuta l'istanza di MSDE 2000 a cui si intende connettersi.
  3. Digitare il seguente comando e premere INVIO:

    osql -E

    VerrÓ effettuata la connessione all'istanza predefinita locale di MSDE 2000 sulla base dell'autenticazione di Windows.

    Per connettersi a un'istanza denominata di MSDE 2000, digitare:

    osql -E -S nomeserver\nomeistanza

    Se viene visualizzato un messaggio di errore analogo al seguente, Ŕ possibile che MSDE 2000 non sia in esecuzione oppure che sia stato fornito un nome non corretto per l'istanza denominata di MSDE 2000 installata nel computer:
    [Shared Memory]Server SQL inesistente o accesso negato.
    [Shared Memory]Connessione aperta (Connect()).
    Se la connessione al server viene stabilita, al prompt dei comandi verrÓ visualizzato quanto segue:

       1>
    						
    Tale stringa indica che l'utilitÓ osql Ŕ stata avviata. A questo punto Ŕ possibile immettere interattivamente le istruzioni Transact-SQL e visualizzare i relativi risultati al prompt dei comandi.

Gestione di MSDE 2000

Nelle rimanenti sezioni di questo articolo vengono brevemente introdotti i comandi Transact-SQL utilizzati pi¨ frequentemente per gestire MSDE 2000.

Creazione di un nuovo account di accesso

Un utente non pu˛ connettersi a SQL Server senza fornire un ID di accesso valido. Per consentire l'utilizzo di un account di rete (account utente o account gruppo) di Microsoft Windows come account di accesso di SQL Server per la connessione a un'istanza di SQL Server con l'autenticazione di Windows, viene utilizzata la stored procedure sp_grantlogin. Nel seguente esempio di codice viene consentito a un utente di Windows NT denominato Corporate\Test di connettersi a un'istanza di SQL Server:
EXEC sp_grantlogin 'Corporate\Test'
				
Solo i membri dei ruoli predefiniti del server sysadmin o securityadmin possono eseguire la stored procedure sp_grantlogin. Per ulteriori informazioni sui ruoli, vedere l'argomento relativo ai ruoli nell'architettura SQL Server nella documentazione in linea di SQL Server.

Per ulteriori informazioni sulla stored procedure sp_grantlogin, vedere il relativo argomento nella documentazione in linea di SQL Server.

La stored procedure sp_addlogin viene utilizzata per creare un nuovo account di accesso per le connessioni a SQL Server con l'autenticazione di SQL Server. Nel seguente esempio di codice viene creato un account di accesso di SQL Server per un utente denominato "test" con password "hello":
EXEC sp_addlogin 'test','hello'
				
Solo i membri dei ruoli predefiniti del server sysadmin o securityadmin possono eseguire la stored procedure sp_addlogin. Per ulteriori informazioni sulla stored procedure sp_addlogin, vedere il relativo argomento relativo nella documentazione in linea di SQL Server.

Accesso a un database

Una volta connesso a un'istanza di SQL Server, un utente pu˛ eseguire attivitÓ di database finchÚ il proprietario del database (DBO) gliene consente l'accesso. ╚ possibile utilizzare la stored procedure sp_grantdbaccess per aggiungere al database corrente un account di protezione per un nuovo utente. Nel seguente esempio di codice viene aggiunto un account per l'utente di Windows NT "Corporate\BobJ" e viene denominato tale account "Bob":
EXEC sp_grantdbaccess 'Corporate\BobJ', 'Bob'
				

La stored procedure sp_adduser svolge la stessa funzione della stored procedure sp_grantdbaccess. PoichÚ la stored procedure sp_adduser Ŕ stata inclusa per garantire la compatibilitÓ con le versioni precedenti, Microsoft consiglia di utilizzare la stored procedure sp_grantdbaccess.

Solo i membri del ruolo predefinito del server sysadmin e dei ruoli predefiniti del database db_accessadmin e db_owner possono eseguire la stored procedure sp_grantdbaccess. Per ulteriori informazioni sulla stored procedure sp_grantdbaccess, vedere il relativo argomento nella documentazione in linea di SQL Server.

Modifica della password per un account di accesso

Per modificare la password per un account di accesso, utilizzare la stored procedure sp_password. Nel seguente esempio di codice, la password per l'account di accesso "test" viene modificata in "hello":
EXEC sp_password 'ok', 'hello','test'
				

Per impostazione predefinita, le autorizzazioni di esecuzione per un utente che modifica la password relativa al proprio account di accesso sono assegnate al ruolo pubblico. Solo i membri del ruolo sysadmin possono modificare la password per l'account di accesso di un altro utente. Per ulteriori informazioni sulla stored procedure sp_password, vedere il relativo argomento nella documentazione in linea di SQL Server.

Creazione di un database

Un database di MSDE 2000 Ŕ costituito da un insieme di tabelle contenenti dati e altri oggetti, quali viste, indici, stored procedure e trigger, definiti per supportare le attivitÓ relative ai dati. Per creare un database di MSDE 2000, utilizzare il comando Transact-SQL "CREATE DATABASE". Per ulteriori informazioni sulla creazione di un database, vedere il relativo argomento nella documentazione in linea di SQL Server.

Nell'esempio seguente viene creato un database denominato Test. PoichÚ al comando non vengono aggiunti ulteriori parametri, il database Test avrÓ la stessa dimensione del database model:
CREATE DATABASE Test
				
Per impostazione predefinita, l'autorizzazione per CREATE DATABASE Ŕ assegnata ai membri dei ruoli predefiniti del server sysadmin e dbcreator. Per ulteriori informazioni sul comando "CREATE DATABASE", vedere il relativo argomento nella documentazione in linea di SQL Server.

Per creare un nuovo oggetto di database, utilizzare il comando Transact-SQL CREATE. Per creare, ad esempio, una nuova tabella, utilizzare il comando Transact-SQL "CREATE TABLE". Per ulteriori informazioni, fare riferimento alla documentazione in linea di SQL Server.

Backup e ripristino di database

I componenti di SQL Server relativi al backup e al ripristino costituiscono importanti strumenti di salvaguardia dei dati critici archiviati nei database di SQL Server.

Seguendo un'appropriata pianificazione Ŕ possibile ripristinare il database dopo vari tipi di errori, quali:
  • Errori dei supporti.
  • Errori dell'utente.
  • Perdita permanente di un server.
Inoltre, il backup e il ripristino dei database sono utili per altri scopi, quali la copia di un database da un server all'altro. Eseguendo il backup di un database su un server e ripristinandolo su un altro computer si otterrÓ rapidamente e facilmente una copia esatta del database originale.

Per ulteriori informazioni sulle operazioni relative al backup e al ripristino di database, vedere il relativo argomento nella documentazione in linea di SQL Server.

Nell'esempio di codice seguente viene eseguito un backup completo del database denominato mydb, quindi il file di backup viene denominato Mydb.bak e archiviato nella cartella C:\Msde\Backup:

BACKUP DATABASE mydb TO DISK = 'C:\MSDE\Backup\mydb.bak'
				

Nell'esempio di codice seguente viene eseguito un backup del log per il database denominato mydb, quindi il file di backup viene denominato Mydb_log.bak e archiviato nella cartella C:\Msde\Backup:

BACKUP LOG mydb TO DISK = 'C:\MSDE\Backup\mydb_log.bak'
				

Per impostazione predefinita, le autorizzazioni per BACKUP DATABASE e BACKUP LOG sono assegnate ai membri del ruolo predefinito del server sysadmin e dei ruoli predefiniti del database db_owner e db_backupoperator. Per ulteriori informazioni sull'istruzione BACKUP, vedere il relativo argomento nella documentazione in linea di SQL Server.


In MSDE Ŕ incluso il servizio Agente SQL Server per la gestione dei processi pianificati. ╚ ad esempio possibile creare e pianificare un processo di backup Transact-SQL. Il servizio Agente SQL Server consente la gestione della pianificazione dei processi. Per un esempio di codice relativo all'utilizzo delle varie stored procedure con MSDE 2000 per l'esecuzione e la pianificazione di backup, vedere il seguente articolo della Microsoft Knowledge Base:
241397 Backup di un database di MSDE con Transact-SQL
Per ulteriori informazioni sul servizio Agente SQL Server, vedere il relativo argomento nella documentazione in linea di SQL Server.

Per garantire la piena funzionalitÓ di una copia di backup del database, Ŕ necessario eseguire le procedure corrette non solo in fase di backup, ma anche in fase di ripristino. Nell'esempio seguente viene ripristinato un database denominato mydb dal file di backup C:\Msde\Backup\Mydb.bak:

RESTORE DATABASE mydb FROM DISK ='C:\MSDE\Backup\mydb.bak'
				
Se il database da ripristinare non esiste, l'utente deve essere dotato delle autorizzazioni per CREATE DATABASE per eseguire l'istruzione RESTORE. Se il database esiste, le autorizzazioni per RESTORE sono assegnate ai membri dei ruoli predefiniti del server sysadmin e dbcreator nonchÚ al proprietario del database (DBO). Per ulteriori informazioni sull'istruzione RESTORE, vedere il relativo argomento nella documentazione in linea di SQL Server.

Connessione e disconnessione di un database

I file di dati e di log delle transazioni di un database possono essere disconnessi e poi riconnessi a un altro server o anche al server originale. Quando viene disconnesso, il database viene rimosso da SQL Server, ma vengono mantenuti intatti i file di dati e di log delle transazioni che lo compongono. Tali file di dati e di log delle transazioni possono quindi essere utilizzati per connettere il database a una qualsiasi istanza di SQL Server, incluso il server da cui era stato originariamente disconnesso. In questo modo, il database viene reso disponibile nello stato in cui si trovava prima della disconnessione. Per ulteriori informazioni, vedere l'argomento relativo alla connessione e alla disconnessione di un database nella documentazione in linea di SQL Server.

Nell'esempio seguente viene disconnesso un database denominato mydb dall'istanza corrente di SQL Server:
EXEC sp_detach_db 'mydb'
				
Solo i membri del ruolo predefinito del server sysadmin possono eseguire la stored procedure sp_detach_db. Per ulteriori informazioni sulla stored procedure sp_detach_db, vedere il relativo argomento nella documentazione in linea di SQL Server.

Nell'esempio seguente vengono connessi due file di un database denominato mydb all'istanza corrente di SQL Server:
EXEC sp_attach_db @dbname = N'mydb', 
   @filename1 = N'C:\MSDE\Backup\mydb.mdf', 
   @filename2 = N'C:\MSDE\Backup\mydb.ldf'
				
La lettera maiuscola N Ŕ utilizzata come prefisso di una costante stringa Unicode. Il prefisso "N" sta per "National Language" nello standard SQL-92. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
239530 INF: Le costanti stringa Unicode in SQL Server richiedono il prefisso N
Solo i membri dei ruoli predefiniti del server sysadmin o dbcreator possono eseguire questa procedura. Per ulteriori informazioni sulla stored procedure sp_attach_db, vedere il relativo argomento nella documentazione in linea di SQL Server.

Le seguenti informazioni sull'impiego dell'utilitÓ osql si applicano anche a tutte le edizioni di Microsoft SQL Server 2000.

Riferimenti

Per scaricare una versione aggiornata della documentazione in linea di SQL Server 2000, visitare il seguente sito Web Microsoft (informazioni in lingua inglese):
http://www.microsoft.com/sql/techinfo/books.mspx
Per scaricare la documentazione in linea per la versione 7.0 di SQL Server, visitare il seguente sito Web Microsoft (l'installazione Ŕ in inglese):
http://download.microsoft.com/download/SQL70/File/2/Win98/En-US/SQLBOL.exe
Per ulteriori informazioni su MSDE 2000, vedere i seguenti articoli della Microsoft Knowledge Base:
319930 Connessione a MSDE
241397 Backup di un database di MSDE con Transact-SQL

ProprietÓ

Identificativo articolo: 325003 - Ultima modifica: mercoledý 21 marzo 2007 - Revisione: 2.1
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
Chiavi:á
kbdownload kbhowtomaster KB325003
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Dichiarazione di non responsabilitÓ per articoli della Microsoft Knowledge Base su prodotti non pi¨ supportati
Questo articolo Ŕ stato scritto sui prodotti per cui Microsoft non offre pi¨ supporto. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com