Destinatarios: los desarrolladores de aplicaciones que necesitan distribuir SQL Server Express con una aplicación con el fin de proporcionar almacenamiento de datos mediante una base de datos de SQL Server.
Si su aplicación utiliza SQL Server Express a su base de datos de host, puede redistribuir libremente del producto de SQL Server Express con su aplicación. Este artículo contiene información y enlaces que le permitirán correctamente incrustar SQL Server Express como parte de la instalación de la aplicación.
Existen varias ediciones de SQL Server Express, desde una base de datos sólo instale en base de datos, servicios avanzados e instalación de herramientas de administración.
Motor de base de datos SQL Server
X
SQL Server Management Studio Basic
Búsqueda de texto completo
Reporting Services
Tamaño de la descarga
38.5 MB
82,5 MB
230.4 MB
546.5 MB
Estas cuatro ediciones de SQL Server 2008R2 incluyen las siguientes funcionalidades y capacidades.
SQL Server 2008R2 Express con herramientas
SQL Server 2008 Express with Advanced Services
SQL Server 2008R2 Express (sólo Runtime)
SQL Server Database Engine - para crear, almacenar, actualizar y recuperar datos
SQL Server 2008R2 Management Studio Express (SSMSE)
Para obtener más información acerca de SQL Server 2008R2 Express, vaya al sitio de Web Express de 2008R2 de SQL Server (http://www.microsoft.com/sqlserver/2008/en/us/express.aspx).
Para descargar SQL Server 2008R2 Express, vaya a la página de descarga (http://www.microsoft.com/express/sql/download/).
Antes de incrustar SQL Server 2008R2 Express en su aplicación, usted debe obtener una licencia con el fin de redistribuir la edición Express. La licencia es libre y puede obtenerse por ir a la página de registro de licencia (http://www.microsoft.com/sqlserver/2008/en/us/express/redistregister.aspx).
Volver al comienzo
Antes de realizar una instalación de SQL Server, usted debe primero comprobar para ver si ya está instalado SQL Server en el equipo de destino. La manera recomendada para comprobar una instalación de SQL Server, y qué instancias están presentes es utilizar WMI. El código de VB y C# siguiente muestra cómo realizar esto.
C#
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Management;
namespace
ExpressDetection
{
class
Program
static
void
Main(
string
[] args)
if
(!EnumerateSQLInstances())
Console.WriteLine(
"There are no instances of SQL Server 2005 or SQL Server 2008 installed"
);
}
/// <summary>
/// Enumerates all SQL Server instances on the machine.
/// </summary>
/// <returns></returns>
public
bool
EnumerateSQLInstances()
correctNamespace = GetCorrectWmiNameSpace();
(
.Equals(correctNamespace,
.Empty))
return
false
;
query =
.Format(
"select * from SqlServiceAdvancedProperty where SQLServiceType = 1 and PropertyName = 'instanceID'"
ManagementObjectSearcher getSqlEngine =
new
ManagementObjectSearcher(correctNamespace, query);
(getSqlEngine.Get().Count == 0)
"SQL Server database instances discovered :"
instanceName =
.Empty;
serviceName =
version =
edition =
"Instance Name \t ServiceName \t Edition \t Version \t"
foreach
(ManagementObject sqlEngine
in
getSqlEngine.Get())
serviceName = sqlEngine[
"ServiceName"
].ToString();
instanceName = GetInstanceNameFromServiceName(serviceName);
version = GetWmiPropertyValueForEngineService(serviceName, correctNamespace,
"Version"
edition = GetWmiPropertyValueForEngineService(serviceName, correctNamespace,
"SKUNAME"
Console.Write(
"{0} \t"
, instanceName);
, serviceName);
, edition);
, version);
true
/// Method returns the correct SQL namespace to use to detect SQL Server instances.
/// <returns>namespace to use to detect SQL Server instances</returns>
GetCorrectWmiNameSpace()
String wmiNamespaceToUse =
"root\\Microsoft\\sqlserver"
List<
> namespaces =
>();
try
// Enumerate all WMI instances of
// __namespace WMI class.
ManagementClass nsClass =
ManagementClass(
ManagementScope(wmiNamespaceToUse),
ManagementPath(
"__namespace"
),
null
(ManagementObject ns
nsClass.GetInstances())
namespaces.Add(ns[
"Name"
].ToString());
catch
(ManagementException e)
"Exception = "
+ e.Message);
(namespaces.Count > 0)
(namespaces.Contains(
"ComputerManagement10"
))
//use katmai+ namespace
wmiNamespaceToUse = wmiNamespaceToUse +
"\\ComputerManagement10"
else
"ComputerManagement"
//use yukon namespace
"\\ComputerManagement"
wmiNamespaceToUse =
wmiNamespaceToUse;
/// method extracts the instance name from the service name
/// <param name="serviceName"></param>
GetInstanceNameFromServiceName(
serviceName)
(!
.IsNullOrEmpty(serviceName))
.Equals(serviceName,
"MSSQLSERVER"
, StringComparison.OrdinalIgnoreCase))
serviceName;
serviceName.Substring(serviceName.IndexOf(
'$'
) + 1, serviceName.Length - serviceName.IndexOf(
) - 1);
/// Returns the WMI property value for a given property name for a particular SQL Server service Name
/// <param name="serviceName">The service name for the SQL Server engine serivce to query for</param>
/// <param name="wmiNamespace">The wmi namespace to connect to </param>
/// <param name="propertyName">The property name whose value is required</param>
GetWmiPropertyValueForEngineService(
serviceName,
wmiNamespace,
propertyName)
propertyValue =
query = String.Format(
"select * from SqlServiceAdvancedProperty where SQLServiceType = 1 and PropertyName = '{0}' and ServiceName = '{1}'"
, propertyName, serviceName);
ManagementObjectSearcher propertySearcher =
ManagementObjectSearcher(wmiNamespace, query);
(ManagementObject sqlEdition
propertySearcher.Get())
propertyValue = sqlEdition[
"PropertyStrValue"
propertyValue;
Imports
System.Management
Module
Sub
Main()
If
Not
Then
"No instances"
)
End
''' <summary>
''' Enumerates all SQL Server instances on the machine.
''' </summary>
''' <returns></returns>
Function
As
Boolean
Dim
correctNamespace
String
= GetCorrectWmiNamespace()
.Empty)
Return
False
query
=
getSqlEngine
New
ManagementObjectSearcher
With
{.Scope =
ManagementScope(correctNamespace), .Query =
ObjectQuery(query)}
getSqlEngine.
Get
().Count = 0
"SQL Server database instances disovered :"
instanceName
.Empty
serviceName
version
edition
"Instance name {0} ServiceName {0} Edition {0} Version {0}"
, vbTab)
For
Each
sqlEngine
ManagementObject
In
()
serviceName = sqlEngine(
).ToString()
instanceName = GetInstanceNameFromServiceName(serviceName)
"{0} {1}"
, instanceName, vbTab)
, serviceName, vbTab)
, edition, vbTab)
, version, vbTab)
Next
True
''' Method returns the correct SQL namespace to use to detect SQL Server instances.
''' <returns>namespace to use to detect SQL Server instances</returns>
GetCorrectWmiNamespace()
wmiNamspaceToUse
"root\Microsoft\SqlServer"
namespaces
List(Of
Try
'Enumerate all WMI instances of
'__namespace WMI class.
nsClass
ManagementClass
ManagementScope(wmiNamspaceToUse), .Path =
)}
ns
nsClass.GetInstances()
namespaces.Add(ns(
).ToString())
Catch
ex
ManagementException
"Exception = %1"
, ex.Message)
namespaces.Count > 0
namespaces.Contains(
'use Katmai+ namespace
wmiNamspaceToUse = wmiNamspaceToUse +
"\ComputerManagement10"
ElseIf
'use Yukon namespace
"\ComputerManagement"
Else
wmiNamspaceToUse =
''' method extracts the instance name from the service name
''' <param name="serviceName"></param>
ByVal
.IsNullOrEmpty(serviceName)
, StringComparison.OrdinalIgnoreCase)
"$"
c) + 1, serviceName.Length - serviceName.IndexOf(
c) - 1)
''' Returns the WMI property value for a given property name for a particular SQL Server service Name
''' <param name="serviceName">The service name for the SQL Server engine serivce to query for</param>
''' <param name="wmiNamespace">The wmi namespace to connect to </param>
''' <param name="propertyName">The property name whose value is required</param>
,
wmiNamespace
propertyName
propertyValue
, propertyName, serviceName)
propertySearcher
ManagementScope(wmiNamespace), .Query =
sqlEdition
propertySearcher.
propertyValue = sqlEdition(
#include "stdafx.h"
#include <comdef.h>
#include <iostream>
std;
#include <windows.h>
#include <assert.h>
#include <wbemidl.h>
HRESULT
InitializeCOMandCOMSecurity();
IWbemServices* GetSQLServerWMIConnection();
EnumerateSQLInstances(IWbemServices* pSvc);
_bstr_t GetInstanceNameFromServiceName(_bstr_t serviceName);
_bstr_t GetWmiPropertyValueForEngineService(_bstr_t serviceName, _bstr_t propertyName, IWbemServices* pSvc);
int
_tmain(
argc, _TCHAR* argv[])
hres;
IWbemServices *pSvc = NULL;
//initialize COM and COM Security
(FAILED(hres=InitializeCOMandCOMSecurity()))
((pSvc=GetSQLServerWMIConnection()) == NULL)
-1;
EnumerateSQLInstances(pSvc);
// Cleanup
(pSvc != NULL)
pSvc->Release();
CoUninitialize();
0;
/// Initializes COM and COM security
/// <returns>If COM or COM security initialization fails, a failure code; otherwise, zero.</returns>
InitializeCOMandCOMSecurity()
hres = CoInitializeEx(0, COINIT_MULTITHREADED);
// Initialize COM.
(FAILED(hres))
cout <<
"Failed to initialize COM library. Error code = 0x"
<< hex << hres << endl;
// Program has failed.
hres = CoInitializeSecurity(NULL, -1, NULL, NULL,
RPC_C_AUTHN_LEVEL_CONNECT,
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL, EOAC_NONE, 0
"Failed to initialize security. Error code = 0x"
/// Connects to the SQL Server WMI namespace
/// <returns>If successful, a pointer to the IWebmServices object bound to the namespace; otherwise, null</returns>
IWbemServices* GetSQLServerWMIConnection()
IWbemLocator *pLoc = NULL;
// Get IWbemLocator object which is used to connect to WMI namespaces
hres = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (
LPVOID
*) &pLoc);
"Failed to create IWbemLocator object used for namespace connections. Err code = 0x"
NULL;
// Attempt to connect to root\Microsoft\SQLServer\ComputerManagement10 (katmai+)
_bstr_t bstrNamespace(
"\\\\.\\root\\Microsoft\\SqlServer\\ComputerManagement10"
hres = pLoc->ConnectServer(
bstrNamespace,
NULL,
0,
&pSvc
//if \ComputerManagement10 failed, try \ComputerManagement (yukon)
"Could not connect to \\\\.\\root\\Microsoft\\SqlServer\\ComputerManagement10. Error code = 0x"
<< hex << hres << endl <<
"Trying \\\\.\\root\\Microsoft\\SqlServer\\ComputerManagement"
<< endl;
bstrNamespace =
"\\\\.\\root\\Microsoft\\SqlServer\\ComputerManagement"
//if \ComputerManagement failed, return a null
"Could not connect to \\\\.\\root\\Microsoft\\SqlServer\\ComputerManagement. Error code = 0x"
pSvc = NULL;
cout << endl <<
"Connected to "
<< (
char
*)bstrNamespace << endl << endl;
pLoc->Release();
pSvc;
/// Enumerate SQL Server Instances
/// <param name="pSvc">pointer to the IWebmServices object bound to the interface</para>
EnumerateSQLInstances(IWbemServices* pSvc)
_bstr_t bstrWQL(L
"WQL"
// WQL to retrieve the instance information
_bstr_t bstrQuery(L
"SELECT * FROM SqlServiceAdvancedProperty WHERE SQLServiceType = 1 AND PropertyName = 'instanceID'"
_bstr_t bstrTemp;
_bstr_t serviceName;
_bstr_t instanceName;
_bstr_t version;
_bstr_t edition;
IEnumWbemClassObject* pEnum = NULL;
IWbemClassObject* pObject = NULL;
ULONG
count;
// First lets get all the ServiceName info from the SQL properties.
hr = pSvc->ExecQuery(bstrWQL,bstrQuery,WBEM_FLAG_RETURN_IMMEDIATELY|WBEM_FLAG_FORWARD_ONLY,NULL,&pEnum);
_variant_t vt;
(SUCCEEDED(hr))
// Enumerate the ServiceName result set and get information for each related instance ===//
while
(SUCCEEDED(pEnum->Next(10000,1,&pObject,&count)) && count)
(FAILED(hres=pObject->Get(L
,0,&vt,NULL,NULL)))
"Failed to get some ServiceName info. Error code = 0x"
continue
serviceName = vt.bstrVal;
// Get the instance name
pObject->Release();
pObject = NULL;
// Get the version and edition
version = GetWmiPropertyValueForEngineService(serviceName, L
, pSvc);
edition = GetWmiPropertyValueForEngineService(serviceName, L
"Service Name: "
<< serviceName << endl;
"Instance Name: "
<< instanceName << endl;
"Version: "
<< version << endl;
"Edition: "
<< edition << endl << endl;
pEnum->Release();
pEnum = NULL;
_bstr_t GetInstanceNameFromServiceName(_bstr_t serviceName)
std::wstring str = serviceName;
//Check for the presence of an instance name
(!str.empty())
wstring::size_type idx, len;
len = str.size();
//$ seperates servicename from instance name
idx = str.find_first_of(L
(idx!=std::wstring::npos)
instanceName = str.substr(idx+1,len-idx).c_str();
// Assume it's the default instance
instanceName=serviceName;
instanceName=L
""
instanceName;
/// <param name="pSvc">Pointer to the WMI service instance</param>
_bstr_t GetWmiPropertyValueForEngineService(_bstr_t serviceName, _bstr_t propertyName, IWbemServices* pSvc)
_bstr_t bstrQuery, bstr;
// Build the WQL statement
bstrQuery = L
"select * from SqlServiceAdvancedProperty where SQLServiceType = 1 and PropertyName = '"
bstrQuery += propertyName;
bstrQuery +=
"' and ServiceName = '"
bstrQuery += serviceName;
bstrQuery += L
"'"
(SUCCEEDED(pSvc->ExecQuery(bstrWQL,bstrQuery,WBEM_FLAG_RETURN_IMMEDIATELY|WBEM_FLAG_FORWARD_ONLY,NULL,&pEnum)))
"Failed to get some info. Error code = 0x"
// get the value
bstr = vt.bstrVal;
bstr;
Para obtener más información acerca de cómo solucionar problemas con WMI, consulte Windows Management Instrumentation (http://msdn.microsoft.com/en-us/library/aa394582 (VS.85) .aspx ).
Las acciones a tomar si se encuentra una instalación previa de SQL Server dependen de sus necesidades de aplicación. Si su aplicación utiliza una determinada instancia con nombre y ya existe, esto puede indicar que la aplicación se instaló anteriormente. En este caso puede necesitar para realizar la verificación de la base de datos, eliminar, o actualizarlo. Si una versión anterior de SQL Server 2008R2 que Express se encuentra, puede realizar una instalación de la actualización de Express, o si la aplicación admite múltiples versiones de Express puede continuar la instalación sigue los pasos de instalación específicos de versión.
Existen dos métodos recomendados para incluir SQL Server Express como parte de su aplicación:
Mientras que ambos métodos proporcionan un método de instalación de SQL Server 2008R2 Express como parte de su aplicación, existen consideraciones diferentes para cada uno. Antes de comprometerse a uno u otro, lea atentamente la siguiente información.
Invocar directamente setup.exe requiere que el desarrollador de aplicaciones para especificar las opciones que se utilizarán durante la instalación, o con el usuario que realiza la instalación para seleccionarlos.
El instalador de plataforma Web puede utilizarse para instalar SQL Server Express con un mínimo de intervención del usuario, utilizando los ajustes más comunes como el predeterminado. Hay varias maneras de invocar a la Web Platform Installer que resultará en una instalación de SQL Server Express:
De los tres métodos, utilizando la Galería de Web App es el método recomendado, ya que esto será no sólo instalar SQL Server Express, sino que también Instale el instalador de plataforma Web si no está ya presente en el equipo.
Al instalar Express con WPI, puede seleccionar la edición de SQL Server 2008R2 Express para instalarse especificando un valor de ID de producto como parámetro de WPI. En la tabla siguiente se enumeran las ediciones disponibles, sus características y los valores de ID de producto asociado.
ID de producto
SQLManagementStudio
SQLExpress
SQLExpressTools
SQLExpressAdv
Mediante el ejecutable WPI
Sintaxis: WebPlatformInstaller.exe /id < id del producto > [& < id del producto >...][? < id de archivo > [& < id de archivo >...]][? < id de idioma >]
Ejemplos:
System.Diagnostics.Process.Start(@
"C:\Program Files\Microsoft\Web Platform Installer\webplatforminstaller.exe"
" /id SQLExpress"
System.Diagnostics.Process.Start(
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si,
sizeof
(si) );
si.cb =
(si);
ZeroMemory( &pi,
(pi) );
CreateProcess(L
"C:\\Program Files\\Microsoft\\Web Platform Installer\\webplatforminstaller.exe"
L
, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
Utilizando el controlador de WPI
Sintaxis: wpi: / / < id del producto > [& < id del producto >...][? < id de archivo > [& < id de archivo >...]][? < id de idioma >]
System.Diagnostics.Process.Start("wpi://SQLExpress/");
VB.NET
System.Diagnostics.Process.Start("wpi://SQLExpress/")
Utilizando la Galería de Web App
¿Sintaxis: http://www.microsoft.com/web/gallery/install.aspx?[appsxml = < id de archivo >][& appsxml = < id de archivo >...]AppID = < id de producto > [3b % < id del producto >...][& applang = < id de idioma >]
"http://www.microsoft.com/web/gallery/install.aspx?appsxml=&appid=SQLExpress"
En casos donde es necesario un mayor control sobre las opciones de instalación de SQL Server Express, puede proporcionar los archivos extraídos de instalación Express con su aplicación y lanzamiento setup.exe directamente.
Para extraer el SQL Server 2008R2 Express paquete descargado desde http://www.microsoft.com/express/sql/download , ejecute el siguiente comando:
{Paquete express} /X: {directorio para extraer a}
Ejemplo:
SQLEXPRWT_x86_ENU /X:c:\ExpressSetup
Opciones de instalación
Al instalar SQL Server Express con setup.exe, puede especificar opciones de configuración ya sea usando los parámetros pasados a setup.exe o mediante un archivo de configuración. A pesar de que los parámetros de setup.exe y los métodos de instalación del archivo de configuración ofrecen una funcionalidad similar (es decir, tienen las mismas opciones disponibles), su aplicación difiere. El ConfigurationFile.ini almacena la configuración de entradas de usuario para la instalación específica (aplicables a la instalación actual de lugares públicos).
Puede utilizar el archivo de configuración para reiniciar la instalación utilizando la configuración de usuario de una instalación anterior. La única configuración que no se guardan en el archivo de configuración es las contraseñas para las cuentas y el producto ID (PID). Cuando sea necesario, puede agregar estos parámetros mediante el archivo de configuración, en un símbolo del sistema, o a través de un mensaje de la interfaz de usuario.
Línea de comandos
Setup.exe /q /Action=Install /Hideconsole /IAcceptSQLServerLicenseTerms=True /Features=SQL,Tools /InstanceName=SQLExpress /SQLSYSADMINACCOUNTS="Builtin\Administrators" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>C#System.Diagnostics.Process processObj = System.Diagnostics.Process.Start(@"c:\temp\sqlsetup\setup.exe",@"/q /Action=Install /Hideconsole /IAcceptSQLServerLicenseTerms=True /Features=SQL,Tools /InstanceName=SQLExpress /SQLSYSADMINACCOUNTS=""Builtin\Administrators"" /SQLSVCACCOUNT=""DomainName\UserName"" /SQLSVCPASSWORD=""StrongPassword""");
System.Diagnostics.Process processObj = System.Diagnostics.Process.Start(@
"c:\temp\sqlsetup\setup.exe"
@
"/q /Action=Install /Hideconsole /IAcceptSQLServerLicenseTerms=True /Features=SQL,Tools /InstanceName=SQLExpress /SQLSYSADMINACCOUNTS="
"Builtin\Administrators"
" /SQLSVCACCOUNT="
"DomainName\UserName"
" /SQLSVCPASSWORD="
"StrongPassword"
System.Diagnostics.Process processObj = System.Diagnostics.Process.Start(
"c:\\temp\\sqlsetup\\setup.exe"
" /q /Action=Install /Hideconsole /IAcceptSQLServerLicenseTerms=True /Features=SQL,Tools /InstanceName=SQLExpress /SQLSYSADMINACCOUNTS=\"Builtin\\Administrators\" /SQLSVCACCOUNT=\"DomainName\\UserName\" /SQLSVCPASSWORD=\"StrongPassword\""
NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
Parámetros de línea de comandos
En los ejemplos anteriores:
La tabla siguiente contiene la lista de parámetros disponibles para SQL Server 2008R2 Express, que es una lista parcial de todos los parámetros en SQL Server 2008R2. Los parámetros marcados con una x son típicos para SQL Server 2008R2 Express embedded instalaciones. Los parámetros con no x no se suelen utilizar para instalaciones comunes de SQL Server Express. Para una lista completa de todos los parámetros disponibles con SQL Server 2008R2, consulte http://msdn.microsoft.com/en-us/library/ms144259 (v=SQL.105) .aspx .
Parámetro
/ AddCurrentUserAsSQLAdmin
Opcional
Agrega el usuario actual a la función de servidor fija sysadmin de SQL Server. Puede utilizar el parámetro /ADDCURRENTUSERASSQLADMIN al instalar las ediciones Express o cuando /Role = se utiliza ALLFeatures_WithDefaults. Para obtener más información, consulte /ROLE .
Uso de /ADDCURRENTUSERASSQLADMIN es opcional, pero es necesario /ADDCURRENTUSERASSQLADMIN o /SQLSYSADMINACCOUNTS. Valores predeterminados:
ACCIÓN
Obligatorio
Necesario para indicar el flujo de trabajo de instalación.
Valores admitidos:
/ CONFIGURATIONFILE
Especifica la ConfigurationFile a utilizar.
/ ERRORREPORTING
Especifica el error reporting para SQL Server.
Para obtener más información, consulte declaración de privacidad para el servicio de informes de errores de Microsoft (http://oca.microsoft.com/en/dcp20.asp ).
/ CARACTERÍSTICAS
Especifica los componentes a instalar.
/ INSTALLSHAREDDIR
Especifica un directorio de instalación no predeterminados para componentes compartidos de 64 bits.
/ INSTALLSHAREDWOWDIR
Especifica un directorio de instalación no predeterminados para componentes compartidos de 32 bits. Compatible sólo con un sistema de 64 bits.
/ INSTANCEDIR
Especifica un directorio de instalación no predeterminados para componentes específicos de la instancia.
/ NOMBREDEINSTANCIA
Especifica un nombre de instancia de SQL Server.
Para obtener más información, consulte configuración de la instancia .
/ Q
Especifica que la instalación ejecutar en un modo silencioso sin mostrar mensajes de interfaz de usuario o usuario. Se utiliza para instalaciones desatendidas.
/QS
Especifica que configuración se ejecuta y muestra el progreso a través de la interfaz de usuario, pero no aceptar ninguna entrada del usuario o mostrar mensajes de error.
/ SQMREPORTING
Especifica el uso de la característica informes de SQL Server.
Para obtener más información, consulte declaración de privacidad para el servicio de informes de errores de Microsoft .
/ HIDECONSOLE
Especifica que la ventana de la consola está oculta o cerrada. Si no se especifica, la consola permanece abierta mientras se ejecuta el programa de instalación, que generalmente no es preferido.
/ ENABLERANU
Permite ejecutar como credenciales para instalaciones de SQL Server Express. Esta opción está desactivada por defecto.
/ INSTALLSQLDATADIR
Especifica el directorio de datos de archivos de datos de SQL Server.
Valores predeterminados:
Para todas las demás instalaciones: % programa archivos de programa%\Microsoft SQL Server\
/ SAPWD
Requerido cuando /SECURITYMODE = SQL
Especifica la contraseña para la cuenta de administrador del sistema (sa) de SQL Server.
/ SECURITYMODE
Especifica el modo de seguridad para SQL Server.
Si no se proporciona este parámetro, se aplica el valor predeterminado de modo de autenticación Windows únicamente. El valor admitido es SQL
/ SQLBACKUPDIR
Especifica el directorio para los archivos de copia de seguridad.
El valor predeterminado es
<InstallSQLDataDir> \ <SQLInstanceID> \MSSQL\Backup
/ SQLCOLLATION
Especifica la configuración de intercalación de SQL Server.
SQL_Latin1_General_CP1_CS_AS
/ SQLSVCACCOUNT
Especifica la cuenta de inicio del servicio SQL Server.
/ SQLSVCPASSWORD
Especifica la contraseña para SQLSVCACCOUNT. (Esto es necesario sólo si se utiliza una cuenta local o dominio).
/ SQLSVCSTARTUPTYPE
Especifica la Inicio modo del servicio SQL Server. Los valores admitidos son:
/ RSSVCACCOUNT
Especifica la cuenta de inicio del servicio servidor de informes. Esto sólo está disponible en el paquete de avanzada Express.
/ RSSVCPASSWORD
Especifica la contraseña para el servicio del servidor de informes. Esto sólo está disponible en el paquete de avanzada Express. (Se requiere únicamente si se utiliza una cuenta local o dominio).
/ RSSVCSTARTUPTYPE
Especifica la Inicio modo del servicio de servidor de informes. Los valores admitidos son:
Esto sólo está disponible en el paquete de avanzada Express.
/ SQLSYSADMINACCOUNTS
Inicios de sesión de disposiciones a ser miembros de la función sysadmin .
Este parámetro no es necesario si se especifica /AddCurrentUserAsSQLAdmin.
/ SQLTEMPDBDIR
Especifica el directorio para los archivos de datos para tempdb. El valor predeterminado es <InstallSQLDataDir> \ <SQLInstanceID> \MSSQL\Data
/ SQLTEMPDBLOGDIR
Especifica el directorio para los archivos de registro para tempdb. El valor predeterminado es
<InstallSQLDataDir> \ <SQLInstanceID> \MSSQL\Data
/ SQLUSERDBDIR
Especifica el directorio para los archivos de datos para bases de datos de usuario. El valor predeterminado es <InstallSQLDataDir> \ <SQLInstanceID> \MSSQL\Data
/ SQLUSERDBLOGDIR
Especifica el directorio para los archivos de registro de bases de datos de usuario. El valor predeterminado es <InstallSQLDataDir> \ <SQLInstanceID> \MSSQL\Data
/ USESYSDB
Especifica la ubicación de las bases de datos del sistema de SQL Server utiliza para esta instalación.
No incluya el sufijo \Data en la ruta especificada.
/ FILESTREAMLEVEL
Especifica el nivel de acceso para la función FILESTREAM.
Los valores admitidos son:
/ FILESTREAMSHARENAME
Es necesario cuando FILESTREAMLEVEL es mayor que 1.
Especifica el nombre del recurso compartido de Windows en el que se almacenarán los datos FILESTREAM.
/ FTSVCACCOUNT
Especifica la cuenta de servicio del iniciador de filtro de texto completo. El valor predeterminado es la cuenta de servicio Local.
Este parámetro se omite en sistemas operativos Windows Server ® 2008 y Windows Vista ®. ServiceSID se utiliza para ayudar a asegurar la comunicación entre SQL Server y el demonio de filtro de texto completo. Si no se proporcionan los valores, el servicio del iniciador de la FDHOST, que se utiliza para el proceso de host del demonio de filtro, está desactivado. Utilice el administrador de Control SQL Server para cambiar la cuenta de servicio y activar la funcionalidad de texto completo.
/ FTSVCPASSWORD
Especifica la contraseña para el servicio del iniciador de filtro de texto completo.
Este parámetro se omite en los sistemas operativos Windows Server 2008 y Windows Vista.
/ NPENABLED
Especifica el estado del protocolo Canalizaciones con nombre para el servicio de SQL Server. Los valores admitidos son:
Nota: Para habilitar las conexiones remotas, debe habilitar los parámetros NPENABLED o TCPENABLED.
/ TCPENABLED
Especifica el estado del protocolo TCP para el servicio de SQL Server. Los valores admitidos son:
/ IACCEPTSQLSERVERLICENSETERMS
Indica la aceptación o rechazo de los términos de la licencia de SQL Server. Los valores admitidos son:
Actualizar a SQL Server Express 2008
También puede utilizar setup.exe para actualizar desde una versión anterior de SQL Server Express; Sin embargo, debe entender el proceso antes de continuar con un plan de actualización. Para obtener más información acerca de cómo actualizar a SQL Server 2008R2 Express, consulte la guía definitiva para la actualización a SQL Server 2008 (http://blogs.technet.com/dataplatforminsider/archive/2008/12/04/ultimate-guide-for-upgrading-to-sql-server-2008.aspx) y consulte Capítulo 10, "Actualizar a SQL Server 2008 Express".
El siguiente es un ejemplo de llevar a cabo una actualización básica:
Setup.exe /q /Hideconsole /ACTION=upgrade /INSTANCENAME=SQLExpress
La tabla siguiente contiene una lista de los parámetros de entrada utilizado para actualizar a SQL Server 2008 Express.
El valor admitido es de actualización.
Especifica el error reporting para SQL Server. Para obtener más información, consulte declaración de privacidad para el servicio de informes de errores de Microsoft (http://oca.microsoft.com/en/dcp20.asp ). Los valores admitidos son:
Especifica un directorio de instalación no predeterminados para componentes compartidos
Especifica que la instalación ejecutar en un modo silencioso sin interfaz de usuario. Utilice este parámetro para instalaciones desatendidas.
Especifica el uso de la característica informes de SQL Server. Para obtener más información, consulte declaración de privacidad para el servicio de informes de errores de Microsoft . Los valores admitidos son:
Especifica que se oculta o se cierra la ventana de la consola. Si no se especifica un valor, la consola permanece abierta mientras se ejecuta el proceso de instalación, que generalmente no es la opción preferida.
/ BROWSERSVCSTARTUPTYPE
Especifica la Inicio modo de servicio SQL Server Browser. Los valores admitidos son:
/ FTUPGRADEOPTION
Especifica la opción de actualización del catálogo de texto completo. Los valores admitidos son:
Archivo de configuración (ConfigurationFile.ini)
Mientras que la especificación de parámetros en el símbolo permite controlar la instalación y configuración, utilizando un archivo de configuración le permite realizar lo mismo pero almacena todos los parámetros en un archivo. Al proporcionar varios archivos de configuración con la aplicación, puede enfrentar necesidades de configuración de SQL Server 2008R2 Express para una variedad de escenarios de implementación.
El siguiente es un ejemplo de archivo de configuración para una instalación básica de Express:
;SQLSERVER2008 Configuration File [SQLSERVER2008]
; Setup will not display any user interface.
QUIET="True"
; Specifies a Setup work flow, like INSTALL, UNINSTALL, or UPGRADE. This is a required parameter.
ACTION="Install"
; Specifies that the console window is hidden or closed.
HIDECONSOLE="True"
; Specifies features to install, uninstall, or upgrade. The list of top-level
features include SQL, AS, RS, IS, and Tools. The SQL feature will install the
Database Engine, replication, and full-text. The Tools feature will install
Management Tools, SQL Server Books Online, Business Intelligence Development Studio, and other
shared components.
FEATURES=SQL, TOOLS
; Specify a default or named instance. MSSQLSERVER is the default instance for non-
Express editions, and SQLExpress is the default instance for Express editions. This parameter is required when
installing the SQL Server Database Engine (SQL), Analysis Services (AS), or Reporting
Services (RS).
INSTANCENAME="SQLEXPRESS"
; Windows account(s) to provision as SQL Server system administrators.
SQLSYSADMINACCOUNTS="Builtin\Administrators"
; Account for SQL Server service: Domain\User or system account.
/SQLSVCACCOUNT="<
DomainName
\UserName>"
; Specifies the password for SQLSVCACCOUNT
/SQLSVCPASSWORD="<
StrongPassword
>
Otro ejemplo de un archivo de configuración puede encontrarse en cualquier equipo con SQL Server 2008 Express instalado en la ubicación predeterminada de c:\Archivos de programa\Microsoft SQL Server\100\Setup Bootstrap\Log\ < timestamp carpeta > \ConfigurationFile.ini.
Para obtener más información acerca de cómo utilizar el archivo de configuración, consulte Cómo: instalar SQL Server 2008 usando un archivo de configuración (http://msdn.microsoft.com/en-us/library/dd239405.aspx ).
Para asegurar una instalación exitosa y fácil de usar, la aplicación de instalación debe atrapar y procesar los códigos de salida SQL Server 2008 Express. Estos códigos permiten tomar acciones correctivas para la gestión de una instalación nueva o una actualización de SQL Server 2008 Express.
En los ejemplos anteriores, System.Diagnostics.Process.Start se ha utilizado para invocar el proceso de instalación de SQL Server 2008 Express. El espacio de nombres System.Diagnostics.Process también puede utilizarse para controlar el código de salida del proceso al invocar setup.exe para determinar si la instalación fue exitosa o no.
//Loop until the process has exited
do
//refresh the process
processObj.Refresh();
(!processObj.WaitForExit(1000));
"Process exited with {0}!"
, processObj.ExitCode);
processObj
Process = Process.Start(
"/q /Action=Install /Hideconsole /Features=SQL,Tools /InstanceName=SQLExpress /SQLSYSADMINACCOUNTS="
'Loop until process exits
Do
While
processObj.WaitForExit(1000)
'refresh process informaton
processObj.Refresh()
Loop
, processObj.ExitCode)
#include <Windows.h>
#include <stdio.h>
#include <tchar.h>
// Create the setup.exe process
(!CreateProcess(L
NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
printf
"CreateProcess failed (%d)\n"
, GetLastError() );
1;
// Wait until setup exit.
WaitForSingleObject( pi.hProcess, INFINITE );
DWORD
exitCode=0;
// Get the exit code
GetExitCodeProcess(pi.hProcess,&exitCode);
"Exit code (%d)\n"
, exitCode);
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
Al evaluar el código de salida, el cero es un éxito y distinto de cero indica que un requisito previo es que faltan o que se ha producido un error durante la instalación. La tabla siguiente contiene una lista de los códigos de salida más comunes y representan que la mínima básica comprueba que ocurren para una instalación de SQL Server 2008 Express.
Fallas de regla
Durante la instalación, el verificador de la configuración de sistema procesa varias reglas para asegurar que los necesarios servicios, claves de registro, versión del sistema operativo, etc. necesarios para SQL Server 2008R2 están presentes. Si falla una regla, se devuelve un código de falla asociado como el código de salida.
La siguiente tabla enumera los fracasos de la regla que puede comprobar durante la instalación. Para obtener más información sobre las reglas utilizadas por el comprobador de configuración del sistema, así como recomienda las acciones del usuario para corregir un error de regla, consulte Compruebe los parámetros para el comprobador de configuración del sistema .
OsVersionCheck
Comprueba si el equipo cumple los requisitos de versión de sistema operativo mínimo.
0x84BE0001
ThreadHasAdminPrivilegeCheck
Comprueba si la cuenta que ejecuta el programa de instalación de SQL Server tiene derechos de administrador en el equipo.
0x84BE0007
RebootRequiredCheck
Comprueba si un equipo pendiente es necesario; un reinicio pendiente puede causar un error de configuración.
0x84BE0BC2
WmiServiceStateCheck
Comprueba si el servicio WMI ha comenzado y se está ejecutando en el equipo.
0x84BE0003
AclPermissionsFacet
Verifica si las claves de registro de SQL Server son compatibles.
0x84BE01FF
MediaPathLength
Comprueba si el medio de instalación de SQL Server no es demasiado largo.
0x84BE0009
FusionRebootCheck
Comprueba si es necesario reiniciar equipo debido a la fusión roto ATL; un reinicio pendiente puede causar un error de configuración.
SqlUnsupportedProductBlocker
Comprueba si está instalado SQL Server 7.0 o SQL Server 7.0 OLAP Services; SQL Server 2008 no es compatible con SQL Server 7.0.
0x84BE020D
PerfMonCounterNotCorruptedCheck
Comprueba si el subárbol de registro de contador de rendimiento existente es coherente.
0x84BE0004
Bids2005InstalledCheck
Comprueba si hay versiones anteriores de SQL Server 2008 Business Intelligence Development Studio.
0x84BE0005
BlockInstallSxS
Comprueba si existe una instalación existente de SQL Server 2008 Community Technology Preview (CTP).
0x84BE01FA
FacetDomainControllerCheck
Comprueba si el equipo es un controlador de dominio; no se recomienda instalar SQL Server 2008 en un controlador de dominio.
0x84BE0201
SSMS_IsInternetConnected
Verifica que el equipo está conectado a Internet. Si una aplicación .net de Microsoft como Microsoft Management Studio comienza, puede producirse un retraso mientras la comprobación de seguridad .net valida un certificado.
0x84BE0BD1
FacetWOW64PlatformCheck
Determina si el programa de instalación de SQL Server es compatible con esta plataforma de sistema operativo.
0x84BE0213
FacetPowerShellCheck
Comprueba si está instalado Windows PowerShell ®; Windows PowerShell es un requisito de Microsoft SQL Server 2008 Express with Advanced Services.
0x84BE0214
IsFirewallEnabled
Comprueba si el Firewall de Windows está habilitado.
0x84BE0BD2
BlockMixedArchitectureInstall
Comprueba si las características de la instalación son la misma arquitectura de CPU como la instancia especificada.
0x84BE0202
BlockCrossLanguageInstall
Comprueba si el idioma de instalación es el mismo que el lenguaje de las características existentes de SQL Server.
0x84BE0205
StandaloneInstall_HasClusteredOr PreparedInstanceCheck
Comprueba si el nombre de la instancia seleccionada ya es utilizado por una instancia existente de preparados de clúster o agrupada en cualquier nodo del clúster.
0x84BE0207
RS_DoesCatalogExist
Comprueba si existe el archivo de base de datos de catálogo de Reporting Services.
0x84BE03F4
RS_DoesCatalogTempDBExist
Comprueba si existe el archivo de base de datos temporal de Reporting Services catálogo.
0x84BE03F5
Sql2005SsmsExpressFacet
Comprueba si están instaladas las herramientas de SQL Server 2005 Express.
0x84BE0218
EditionRequirementCheck
Comprueba si la edición de SQL Server es compatible con el sistema operativo existente
0x84BE0219
FAT32FileSystemCheck
Comprueba si la unidad especificada es un volumen de sistema de archivos FAT32; instalación en un sistema de archivos FAT32 es compatible pero no se recomienda porque es menos seguro que el sistema de archivos NTFS
0x84BE0249
LibertyASInstallRule
Comprueba si está instalado SQL Server 2000 Analysis Services; SQL Server 2000 Analysis Services no puede instalarse si se utiliza el nombre de la instancia predeterminada de SQL Server 2008.
0x84BE024A
InstanceClashRule
Comprueba si el nombre de instancia especificado ya es utilizado por una instancia existente de SQL Server.
0x84BE024B
VSShellInstalledRule
Comprueba si hay versiones anteriores de Visual Studio 2008.
0x84BE024C
BlockMixedArchitectureUpgrade
Comprueba si la arquitectura de CPU upgrades de función es diferente de la arquitectura de CPU del programa instalado.
0x84BE0203
ShilohUpgradeRule
Comprueba si la instancia seleccionada de SQL Server 2000 cumple los requisitos mínimos de actualización.
0x84BE01F4
LibertyASUpgradeRule
Comprueba si debe actualizar Analysis Services de SQL Server 2000 antes de actualizar servicios de base de datos de SQL Server. SQL Server 2000 Analysis Services debe actualizarse antes de cualquier servicio de base de datos de instancia con nombre.
0x84BE0258
YukonUpgradeSidRule
Comprueba si valen los SID que están asociados con las características seleccionadas para una actualización.
0x84BE0217
BlockCrossLanguageUpgrade
Comprueba si el idioma de instalación es el mismo que el lenguaje de las mejoras de la función de SQL Server.
0x84BE0200
KatmaiBuildToBuildUpgradeRule
Comprueba si la instancia seleccionada de SQL Server 2008 cumple con el requisito mínimo para una actualización de generación a generación.
0x84BE01F8
RS_ValidDSN
Comprueba si el servidor de informes tiene un DSN válido.
0x84BE03E9
RS_ValidDatabaseVersion
Comprueba si la versión de base de datos del servidor de informes puede utilizarse por el servidor de informes de SQL Server 2008.
0x84BE03EA
RS_NoCustomRenderingExtensions
Comprueba si el servidor de informes tiene las extensiones de representación personalizada configuradas.
0x84BE03EB
RS_NoCustomSecurityExtensions
Comprueba si el servidor de informes tiene las extensiones de seguridad personalizados configuradas.
0x84BE03EC
RS_NoCustomAuthExtensions
Comprueba si el servidor de informes tiene las extensiones de autenticación personalizado configuradas.
0x84BE03ED
RS_ReportServerUnsupportedSecurityMode
Comprueba si el servidor de informes está usando cualquier modos de seguridad de Microsoft Internet Information Services (IIS) no compatible.
0x84BE03EE
RS_ReportManagerUnsupported SecurityMode
Comprueba si Report Manager utiliza cualquier modos de seguridad IIS no compatibles.
0x84BE03EF
RS_ReportServerClientCertificate Obligatorio
Comprueba si el servidor de informes es necesario utilizar certificados de cliente.
0x84BE03F0
RS_ReportManagerClientCertificate Obligatorio
0x84BE03F1
RS_RS2000SP2Required
Comprueba si está instalado SQL Server 2000 Reporting Services Service Pack 2 (SP2).
0x84BE03F2
RS_RSServiceRunning
Comprueba si el servicio de Reporting Services se ejecuta cuando la instancia de clúster se está actualizando.
0x84BE03F3
Engine_SqlServerServiceDisabled_Id
Comprueba si el servicio de SQL Server no está establecido como deshabilitado.
0x84BE07D1
Engine_SqlEngineHealthCheck
Comprueba si se puede reiniciar el servicio de SQL Server; o para una instancia de clúster, si el recurso de SQL Server está conectado.
0x84BE07D5
Engine_AllSystemDatabases AccessibleCheck
Comprueba si todas las bases de datos del sistema son accesibles.
0x84BE07D4
Engine_UserHasNotDefinedSchema SysCheck
Comprueba si el usuario ha definido un esquema llamado 'sys'.
0x84BE07D6
Engine_FilestreamAndRcsiDatabasesCheck
Controles para bases de datos con grupos de archivos FILESTREAM y READ_COMMITTED_SNAP SHOT o ALLOW_SNAPSHOT_ AISLAMIENTO habilitado.
0x84BE07DC
Engine_ResourceDLLUpdateRestart Verificación
Comprueba si hay actualizaciones de DLL de recurso compartido, que causan reinicios para instancias de SQL Server en cluster activos en este nodo.
0x84BE07E1
ShilohServiceAccountUpgradeRule
Comprueba si las cuentas de servicio de SQL Server 2000 cumplen los requisitos de actualización.
0x84BE0204
Engine_ServiceAccountOnDomain Verificación
Comprueba si la cuenta de servicio de SQL Server cuando se ejecuta en un controlador de dominio es apta para la actualización.
0x84BE07D3
Cluster_MultipleGroupsUpgradeRule
Comprueba si la instancia seleccionada en clúster de SQL Server 2005 se instala en varios grupos.
0x84BE0BC9
Cluster_BlockLibertyUpgrade
Comprueba si la instancia seleccionada para el upgrade es una instancia agrupada de SQL Server 2000 64-bit.
0x84BE0BCB
FeatureUpgradeMatrixCheck
Comprueba si la característica especificada cumple con SQL Server 2008 upgrade requisitos.
0x84BE0212
IncompleteUpgradeCheck
Comprueba si la operación de actualización se completó correctamente.
0x84BE020E
FailedUpgradeCheck
Comprueba si ha fallado una actualización anterior.
0x84BE020F
LocalOnly_SqlFeatureStateCheck
Comprueba si se ha configurado correctamente la actualización de la función de servicios de base de datos de SQL Server.
0x84BE0215
LocalOnly_AsFeatureStateCheck
Comprueba si se ha configurado correctamente la actualización de la función de SQL Server Analysis Services.
0x84BE0216
RsFeatureStateCheck
Comprueba si se ha configurado correctamente la actualización de la función de SQL Server Reporting Services.
Errores que se producen durante la instalación pueden producir detalles adicionales en los archivos de registro de instalación. Esta información puede utilizarse para descubrir información acerca de un error de regla o error no controlado que no está asociado con una regla. Para obtener más información, consulte Cómo: ver y leer SQL Server Setup Log Files .
Mientras desarrolla su aplicación mediante Microsoft Visual Studio, puede agregar un proyecto de instalación a su solución luego especificar SQL Server Express como requisito previo para su aplicación. Entonces el paquete de instalación instalará SQL Server Express en el equipo de destino si es necesario. Para obtener un ejemplo paso a paso puede hacer referencia a cómo implementar SQL Server 2008 Express como requisito previo con ClickOnce .
Después de instalar SQL Server 2008R2 Express, debe asegurarse de que la base de datos utilizada por la aplicación está disponible. Históricamente esto se ha logrado por proporciona secuencias de comandos T-SQL para crear la base de datos, o para actualizar una versión anterior de la base de datos. Si bien este enfoque sigue siendo válido, SQL Server 2008R2 introducido paquetes de aplicación de capa de datos (DAC) que le permite tratar su base de datos (y los objetos asociados) como si fuera una aplicación completa con control de versiones y capacidades de actualización.
Para obtener más información sobre la creación de secuencias de comandos T-SQL para crear o actualizar una base de datos, consulte documentación y bases de datos de secuencias de comandos y Cómo: generar un Script (SQL Server Management Studio) .
Una aplicación de capa de datos (DAC) es una entidad que contiene todos los objetos de base de datos utilizados por su aplicación. Proporciona una sola unidad para la creación, implementación, y administración de estos objetos y permite una integración más estrecha de la capa de datos y desarrollo de aplicaciones.
Un DAC es típicamente creado con Visual Studio 2010 utilizando la plantilla de aplicación de capa de datos, a continuación, construido y desplegado en la base de datos. Sin embargo también puede exportar un paquete de CAD desde una base de datos existente.
Para obtener más información sobre cómo crear y utilizar aplicaciones de nivel de datos, vea:
Este artículo también está disponible en los siguientes idiomas:
Inglés (en-US)