OPENDATASOURCE (Transact-SQL)OPENDATASOURCE (Transact-SQL)

SE APLICA A: síSQL Server (a partir de 2008) síAzure SQL Database (solo Instancia administrada) noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Proporciona información de conexión ad hoc como parte de un nombre de objeto de cuatro partes sin utilizar un nombre de servidor vinculado.Provides ad hoc connection information as part of a four-part object name without using a linked server name.

Icono de vínculo Convenciones de sintaxis de Transact-SQLlink icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
OPENDATASOURCE ( provider_name, init_string )  

ArgumentosArguments

provider_nameprovider_name
Es el nombre registrado como PROGID del proveedor OLE DB utilizado para obtener acceso al origen de datos.Is the name registered as the PROGID of the OLE DB provider used to access the data source. provider_name es un tipo de datos char que carece de valor predeterminado.provider_name is a char data type, with no default value.

init_stringinit_string
Es la cadena de conexión que se pasa a la interfaz IDataInitialize del proveedor de destino.Is the connection string passed to the IDataInitialize interface of the destination provider. La sintaxis de cadena del proveedor se basa en pares de palabra clave y valor separados por puntos y coma, como: "palabra clave 1=valor ; palabra clave 2=valor".The provider string syntax is based on keyword-value pairs separated by semicolons, such as: 'keyword1=value ; keyword2=value'.

Para conocer los pares de palabra clave y valor admitidos, vea MicrosoftMicrosoft Data Access SDK.For specific keyword-value pairs supported on the provider, see the MicrosoftMicrosoft Data Access SDK. En esta documentación se define la sintaxis básica.This documentation defines the basic syntax. En la siguiente tabla se muestran las palabras clave más utilizadas en el argumento init_string.The following table lists the most frequently used keywords in the init_string argument.

Palabra claveKeyword Propiedad OLE DBOLE DB property Valores válidos y descripciónValid values and description
Origen de datosData Source DBPROP_INIT_DATASOURCEDBPROP_INIT_DATASOURCE Nombre del origen de datos al que se va a conectar.Name of the data source to connect to. Distintos proveedores lo interpretan de formas distintas.Different providers interpret this in different ways. Para un proveedor OLE DB de SQL Native Client SQL ServerSQL Server , indica el nombre del servidor.For SQL ServerSQL Server Native Client OLE DB provider, this indicates the name of the server. Para un proveedor OLE DB para Jet, indica la ruta de acceso completa al archivo .mdb o al archivo .xls.For Jet OLE DB provider, this indicates the full path of the .mdb file or .xls file.
UbicaciónLocation DBPROP_INIT_LOCATIONDBPROP_INIT_LOCATION Ubicación de la base de datos a la que se va a conectar.Location of the database to connect to.
Propiedades extendidasExtended Properties DBPROP_INIT_PROVIDERSTRINGDBPROP_INIT_PROVIDERSTRING Cadena de conexión específica del proveedor.The provider-specific connect-string.
Tiempo de espera de conexiónConnect timeout DBPROP_INIT_TIMEOUTDBPROP_INIT_TIMEOUT Valor de tiempo de espera después del cual se produce un error en el intento de conexión.Time out value after which the connection try fails.
Id. de usuarioUser ID DBPROP_AUTH_USERIDDBPROP_AUTH_USERID Id. de usuario que se va a utilizar para la conexión.User ID to be used for the connection.
ContraseñaPassword DBPROP_AUTH_PASSWORDDBPROP_AUTH_PASSWORD Contraseña que se va a utilizar para la conexión.Password to be used for the connection.
CatálogoCatalog DBPROP_INIT_CATALOGDBPROP_INIT_CATALOG Nombre del catálogo inicial o predeterminado al conectarse al origen de datos.The name of the initial or default catalog when connecting to the data source.
Seguridad integradaIntegrated Security DBPROP_AUTH_INTEGRATEDDBPROP_AUTH_INTEGRATED SSPI, para especificar la autenticación de WindowsSSPI, to specify Windows Authentication

NotasRemarks

OPENDATASOURCE se puede utilizar para tener acceso a datos remotos desde orígenes de datos de OLE DB solo cuando la opción de Registro DisallowAdhocAccess está establecida explícitamente en 0 para el proveedor especificado y la opción de configuración avanzada Ad Hoc Distributed Queries está habilitada.OPENDATASOURCE can be used to access remote data from OLE DB data sources only when the DisallowAdhocAccess registry option is explicitly set to 0 for the specified provider, and the Ad Hoc Distributed Queries advanced configuration option is enabled. Cuando no se establecen estas opciones, el comportamiento predeterminado no permite el acceso ad hoc.When these options are not set, the default behavior does not allow for ad hoc access.

Es posible utilizar la función OPENDATASOURCE en las mismas ubicaciones de la sintaxis Transact-SQLTransact-SQL de un nombre del servidor vinculado.The OPENDATASOURCE function can be used in the same Transact-SQLTransact-SQL syntax locations as a linked-server name. Por tanto, se puede utilizar OPENDATASOURCE como la primera parte de un nombre de cuatro partes que hace referencia a un nombre de tabla o vista en una instrucción SELECT, INSERT, UPDATE o DELETE, o a un procedimiento almacenado remoto en una instrucción EXECUTE.Therefore, OPENDATASOURCE can be used as the first part of a four-part name that refers to a table or view name in a SELECT, INSERT, UPDATE, or DELETE statement, or to a remote stored procedure in an EXECUTE statement. Cuando se ejecutan procedimientos almacenados remotos, OPENDATASOURCE debe hacer referencia a otra instancia de SQL ServerSQL Server.When executing remote stored procedures, OPENDATASOURCE should refer to another instance of SQL ServerSQL Server. OPENDATASOURCE no acepta variables como argumentos.OPENDATASOURCE does not accept variables for its arguments.

Al igual que la función OPENROWSET, OPENDATASOURCE solo debe hacer referencia a orígenes de datos OLE DB a los que se tiene acceso con poca frecuencia.Like the OPENROWSET function, OPENDATASOURCE should only reference OLE DB data sources that are accessed infrequently. Defina un servidor vinculado para los orígenes de datos a los que tiene acceso varias veces.Define a linked server for any data sources accessed more than several times. Ni OPENDATASOURCE ni OPENROWSET proporcionan toda la funcionalidad de definiciones de servidores vinculados, como la administración de seguridad y la capacidad de consultar información de catálogos.Neither OPENDATASOURCE nor OPENROWSET provides all the functionality of linked-server definitions, such as security management and the ability to query catalog information. Toda la información de conexión, incluidas las contraseñas, se debe proporcionar siempre que se llama OPENDATASOURCE.All connection information, including passwords, must be provided every time that OPENDATASOURCE is called.

Importante

La autenticación de Windows es mucho más segura que la de SQL ServerSQL Server.Windows Authentication is much more secure than SQL ServerSQL Server Authentication. Siempre que sea posible, debe utilizar la Autenticación de Windows.You should use Windows Authentication whenever possible. OPENDATASOURCE no se debe utilizar con contraseñas explícitas en la cadena de conexión.OPENDATASOURCE should not be used with explicit passwords in the connection string.

Los requisitos de conexión de cada proveedor son similares a los requisitos de esos parámetros cuando se crean servidores vinculados.The connection requirements for each provider are similar to the requirements for those parameters when creating linked servers. En el artículo sp_addlinkedserver (Transact-SQL) se incluye información detallada sobre muchos proveedores comunes.The details for many common providers are listed in the article sp_addlinkedserver (Transact-SQL).

Las llamadas a OPENDATASOURCE, OPENQUERY u OPENROWSET en la cláusula FROM se evalúan por separado y de forma independiente de otras llamadas a estas funciones utilizadas como destino de la actualización, incluso si se han suministrado argumentos idénticos a las dos llamadas.Any call to OPENDATASOURCE, OPENQUERY, or OPENROWSET in the FROM clause is evaluated separately and independently from any call to these functions used as the target of the update, even if identical arguments are supplied to the two calls. En particular, las condiciones de filtro o combinación aplicadas en el resultado de una de esas llamadas no tienen ningún efecto en los resultados de la otra llamada.In particular, filter or join conditions applied on the result of one of those calls has no effect on the results of the other.

PermisosPermissions

Todos los usuarios pueden ejecutar OPENDATASOURCE.Any user can execute OPENDATASOURCE. Los permisos que se utilizan para conectarse al servidor remoto se determinan a partir de la cadena de conexión.The permissions that are used to connect to the remote server are determined from the connection string.

EjemplosExamples

En el ejemplo siguiente se crea una conexión ad hoc a la instancia de Payroll de SQL ServerSQL Server en el servidor London, y se consulta la tabla AdventureWorks2012.HumanResources.Employee.The following example creates an ad hoc connection to the Payroll instance of SQL ServerSQL Server on server London, and queries the AdventureWorks2012.HumanResources.Employee table. (El uso de SQLNCLI y SQL ServerSQL Server redirigirá a la última versión del proveedor OLE DB de SQL ServerSQL Server Native Client).(Use SQLNCLI and SQL ServerSQL Server will redirect to the latest version of SQL ServerSQL Server Native Client OLE DB Provider.)

SELECT *  
FROM OPENDATASOURCE('SQLNCLI',  
    'Data Source=London\Payroll;Integrated Security=SSPI')  
    .AdventureWorks2012.HumanResources.Employee  

En el ejemplo siguiente se crea una conexión ad hoc a una hoja de cálculo de Excel en el formato 1997 - 2003.The following example creates an ad hoc connection to an Excel spreadsheet in the 1997 - 2003 format.

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',  
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;  

Ver tambiénSee Also

OPENROWSET (Transact-SQL) OPENROWSET (Transact-SQL)
sp_addlinkedserver (Transact-SQL)sp_addlinkedserver (Transact-SQL)