Configurazione di SQL Server in SMO

Negli oggetti Information, Settings, UserOptions e Configuration disponibili in SMO sono contenute impostazioni e informazioni per l'istanza di Microsoft SQL Server.

In SQL Server sono disponibili varie proprietà tramite cui viene descritto il comportamento dell'istanza installata. Le proprietà consentono di descrivere opzioni di avvio, impostazioni predefinite del server, file e directory, informazioni sul sistema e sul processore, prodotto e versioni, informazioni di connessione, opzioni per la memoria, selezioni relative a lingua e regole di confronto e modalità di autenticazione.

Configurazione di SQL Server

Le proprietà dell'oggetto Information contengono informazioni sull'istanza di SQL Server, ad esempio processore e piattaforma.

Le proprietà dell'oggetto Settings contengono informazioni sull'istanza di SQL Server. Oltre al profilo di posta e all'account del server, è possibile modificare il file e la directory di database predefiniti. Queste proprietà rimangono valide per la durata della connessione.

Le proprietà dell'oggetto UserOptions contengono informazioni sul comportamento delle connessioni correnti in relazione ad aritmetica, standard ANSI e transazioni.

È inoltre disponibile un set di opzioni di configurazione rappresentato dall'oggetto Configuration. Contiene un set di proprietà che rappresentano le opzioni che possono essere modificate dalla stored procedure sp_configure. Le opzioni quali Priority Boost, Recovery Interval e Network Packet Sizecontrollano le prestazioni dell'istanza di SQL Server. Molte di queste opzioni possono essere modificate dinamicamente, ma in alcuni casi il valore viene prima configurato, quindi modificato al riavvio dell'istanza di SQL Server.

È presente una proprietà dell'oggetto Configuration per ogni opzione di configurazione. È possibile modificare l'impostazione di configurazione globale utilizzando l'oggetto ConfigProperty. Molte proprietà hanno valori massimi e minimi, anch'essi archiviati come proprietà ConfigProperty. Queste proprietà richiedono il metodo Alter per eseguire il commit della modifica nell'istanza di SQL Server.

Tutte le opzioni di configurazione nell'oggetto Configuration devono essere modificate dall'amministratore del sistema.

Esempi

Per i seguenti esempi di codice, è necessario selezionare l'ambiente, il modello e il linguaggio di programmazione per la creazione dell'applicazione. Per ulteriori informazioni, vedere Creare un progetto SMO per Visual Basic in Visual Studio .NET e Creare un progetto SMO per Visual C# in Visual Studio .NET.

Modifica delle opzioni di configurazione di SQL Server in Visual Basic

Nell'esempio di codice viene illustrato come aggiornare un'opzione di configurazione in Visual Basic .NET. Vengono inoltre recuperate e visualizzate informazioni relative ai valori massimi e minimi per l'opzione di configurazione specificata. Infine, viene segnalato all'utente se la modifica è stata apportata dinamicamente o se è stata archiviata fino al riavvio dell'istanza di SQL Server.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Display all the configuration options.
Dim p As ConfigProperty
For Each p In srv.Configuration.Properties
    Console.WriteLine(p.DisplayName)
Next
Console.WriteLine("There are " & srv.Configuration.Properties.Count.ToString & " configuration options.")
'Display the maximum and minimum values for ShowAdvancedOptions.
Dim min As Integer
Dim max As Integer
min = srv.Configuration.ShowAdvancedOptions.Minimum
max = srv.Configuration.ShowAdvancedOptions.Maximum
Console.WriteLine("Minimum and Maximum values are " & min & " and " & max & ".")
'Modify the value of ShowAdvancedOptions and run the Alter method.
srv.Configuration.ShowAdvancedOptions.ConfigValue = 0
srv.Configuration.Alter()
'Display when the change takes place according to the IsDynamic property.
If srv.Configuration.ShowAdvancedOptions.IsDynamic = True Then
    Console.WriteLine("Configuration option has been updated.")
Else
    Console.WriteLine("Configuration option will be updated when SQL Server is restarted.")
End If

Modifica delle impostazioni di SQL Server in Visual Basic

Nell'esempio di codice vengono visualizzate informazioni sull'istanza di SQL Server in Information e Settings e vengono modificate le impostazioni nelle proprietà degli oggetti Settings e UserOptions.

Nell'esempio l'oggetto UserOptions e l'oggetto Settings hanno entrambi un metodo Alter. È possibile eseguire i metodi Alter per questi oggetti singolarmente.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Display information about the instance of SQL Server in Information and Settings.
Console.WriteLine("OS Version = " & srv.Information.OSVersion)
Console.WriteLine("State = " & srv.Settings.State.ToString)
'Display information specific to the current user in UserOptions.
Console.WriteLine("Quoted Identifier support = " & srv.UserOptions.QuotedIdentifier)
'Modify server settings in Settings.

srv.Settings.LoginMode = ServerLoginMode.Integrated
'Modify settings specific to the current connection in UserOptions.
srv.UserOptions.AbortOnArithmeticErrors = True
'Run the Alter method to make the changes on the instance of SQL Server.
srv.Alter()

Modifica delle impostazioni di SQL Server in Visual C#

Nell'esempio di codice vengono visualizzate informazioni sull'istanza di SQL Server in Information e Settings e vengono modificate le impostazioni nelle proprietà degli oggetti Settings e UserOptions.

Nell'esempio l'oggetto UserOptions e l'oggetto Settings hanno entrambi un metodo Alter. È possibile eseguire i metodi Alter per questi oggetti singolarmente.

//Connect to the local, default instance of SQL Server.

{
            Server srv = new Server();
            //Display all the configuration options. 

            foreach (ConfigProperty p in srv.Configuration.Properties)
            {
                Console.WriteLine(p.DisplayName);
            }
            Console.WriteLine("There are " + srv.Configuration.Properties.Count.ToString() + " configuration options.");
            //Display the maximum and minimum values for ShowAdvancedOptions. 
            int min = 0;
            int max = 0;
            min = srv.Configuration.ShowAdvancedOptions.Minimum;
            max = srv.Configuration.ShowAdvancedOptions.Maximum;
            Console.WriteLine("Minimum and Maximum values are " + min + " and " + max + ".");
            //Modify the value of ShowAdvancedOptions and run the Alter method. 
            srv.Configuration.ShowAdvancedOptions.ConfigValue = 0;
            srv.Configuration.Alter();
            //Display when the change takes place according to the IsDynamic property. 
            if (srv.Configuration.ShowAdvancedOptions.IsDynamic == true)
            {
                Console.WriteLine("Configuration option has been updated.");
            }
            else
            {
                Console.WriteLine("Configuration option will be updated when SQL Server is restarted.");
            }
        }

Modifica delle impostazioni di SQL Server in PowerShell

Nell'esempio di codice vengono visualizzate informazioni sull'istanza di SQL Server in Information e Settings e vengono modificate le impostazioni nelle proprietà degli oggetti Settings e UserOptions.

Nell'esempio l'oggetto UserOptions e l'oggetto Settings hanno entrambi un metodo Alter. È possibile eseguire i metodi Alter per questi oggetti singolarmente.

# Set the path context to the local, default instance of SQL Server.
CD \sql\localhost\
$srv = get-item default

#Display information about the instance of SQL Server in Information and Settings.
"OS Version = " + $srv.Information.OSVersion
"State = "+ $srv.Settings.State.ToString()

#Display information specific to the current user in UserOptions.
"Quoted Identifier support = " + $srv.UserOptions.QuotedIdentifier

#Modify server settings in Settings.
$srv.Settings.LoginMode = [Microsoft.SqlServer.Management.SMO.ServerLoginMode]::Integrated

#Modify settings specific to the current connection in UserOptions.
$srv.UserOptions.AbortOnArithmeticErrors = $true

#Run the Alter method to make the changes on the instance of SQL Server.
$srv.Alter()

Modifica delle opzioni di configurazione di SQL Server in PowerShell

Nell'esempio di codice viene illustrato come aggiornare un'opzione di configurazione in Visual Basic .NET. Vengono inoltre recuperate e visualizzate informazioni relative ai valori massimi e minimi per l'opzione di configurazione specificata. Infine, viene segnalato all'utente se la modifica è stata apportata dinamicamente o se è stata archiviata fino al riavvio dell'istanza di SQL Server.

#Get a server object which corresponds to the default instance replace LocalMachine with the physical server
cd \sql\LocalMachine
$svr = get-item default

#enumerate its properties
foreach ($Item in $Svr.Configuration.Properties) 
{
 $Item.DisplayName
}

"There are " + $svr.Configuration.Properties.Count.ToString() + " configuration options."

#Display the maximum and minimum values for ShowAdvancedOptions.
$min = $svr.Configuration.ShowAdvancedOptions.Minimum
$max = $svr.Configuration.ShowAdvancedOptions.Maximum
"Minimum and Maximum values are " + $min.ToString() + " and " + $max.ToString() + "."

#Modify the value of ShowAdvancedOptions and run the Alter method.
$svr.Configuration.ShowAdvancedOptions.ConfigValue = 0
$svr.Configuration.Alter()

#Display when the change takes place according to the IsDynamic property.
If ($svr.Configuration.ShowAdvancedOptions.IsDynamic -eq $true)
 {  
   "Configuration option has been updated."
 }
Else
{
    "Configuration option will be updated when SQL Server is restarted."
}