Compartir a través de


Usar consultas de paso a través como tablas

SQL Server envía consultas de paso a través como cadenas de consultas sin interpretar a un origen de datos OLE DB.La consulta debe seguir una sintaxis que el origen de datos OLE DB acepte. Una instrucción Transact-SQL usa los resultados de una consulta de paso a través como si fuera una referencia de tabla normal.

Las formas en que se puede generar un conjunto de filas desde un proveedor OLE DB son las siguientes:

  • Hacer referencia a un objeto del origen de datos que el proveedor pueda exponer como un conjunto de filas tabular. Todos los proveedores admiten esta funcionalidad.

  • Enviar al proveedor un comando que éste pueda procesar y exponer los resultados del comando como un conjunto de filas. Esta funcionalidad requiere que el proveedor admita el objeto Command de OLE DB y todas sus interfaces obligatorias.

Cuando un proveedor admite el objeto Command, se pueden usar las siguientes funciones Transact-SQL para enviarle comandos (llamados consultas de paso a través):

  • OPENQUERY envía una cadena de comandos a un origen de datos OLE DB mediante un nombre de servidor vinculado.

  • OPENROWSET y OPENDATASOURCE admiten el envío de una cadena de comandos a un origen de datos OLE DB. Se puede hacer referencia al conjunto de filas resultante mediante un nombre ad hoc.

OPENROWSET y OPENQUERY sólo admiten las consultas de paso a través en las que la cadena de consulta incluye una llamada a procedimiento almacenado cuando la consulta posee una de las características siguientes:

  • Ejecuta una sola instrucción SELECT estática.

  • No utiliza instrucciones EXECUTE dinámicas.

  • No realiza ninguna operación de modificación de datos.

La especificación OLE DB no define que todos los proveedores OLE DB utilicen un único lenguaje de comandos. Los proveedores OLE DB pueden admitir cualquier lenguaje de comandos que esté relacionado con el tipo de datos que exponen. En general, los proveedores OLE DB que exponen los datos en bases de datos relacionales admiten el lenguaje SQL. Otros tipos de proveedores, como los que exponen los datos en un archivo de correo electrónico o directorio de red, generalmente admiten un lenguaje distinto.