Instrucciones para utilizar consultas distribuidas

Actualizado: 17 de julio de 2006

Siempre que el proveedor admita las interfaces OLE DB necesarias, se permitirán todas las clases de instrucciones Transact-SQL mencionadas en este tema.

Instrucciones Transact-SQL

A continuación se ofrece una lista de los subconjuntos del lenguaje Transact-SQL que se permiten en las tablas remotas a las que se tiene acceso a través de nombres basados en un servidor vinculado o nombres "ad hoc":

  • Se admiten todas las consultas con el formato estándar SELECT select_list FROM cláusula WHERE cláusula. La cláusula INTO new_table_name de SELECT no se permite cuando new_table_name hace referencia a una tabla remota.
  • En las instrucciones SELECT, INSERT, UPDATE y DELETE, no es posible calificar columnas en tablas remotas con un nombre de tabla de una sola parte o de cuatro partes. Las tablas remotas deben ser sustituidas por un alias en la cláusula FROM, y se debe utilizar el alias para calificar el nombre de columna.
  • No se pueden consultar tablas que incluyen columnas xml, aunque la consulta pueda tener acceso a las columnas de la tabla que no son xml.
  • Cuando se especifica una columna de objeto grande (LOB) de una tabla remota como un elemento de select_list en una instrucción SELECT, la instrucción SELECT no puede contener una cláusula ORDER BY.
  • Los predicados IS NULL e IS NOT NULL no pueden hacer referencia a las columnas LOB de una tabla remota.
  • No se admite GROUP BY ALL en una consulta distribuida si la consulta tiene también una cláusula WHERE. Se admite GROUP BY sin especificar ALL.
  • Se permite la ejecución de instrucciones INSERT en tablas remotas siempre que el proveedor cumpla los requisitos de OLE DB para las instrucciones INSERT. Para obtener más información, vea Requisitos de INSERT para los proveedores OLE DB.
  • No se pueden insertar constantes NULL en una columna timestamp a través de una consulta distribuida.
  • $IDENTITY y $ROWGUIDCOL no se admiten con las consultas distribuidas. No se pueden insertar valores explícitos en las columnas de identidad de las tablas remotas.
  • Se permite la ejecución de instrucciones UPDATE y DELETE en tablas remotas si el proveedor cumple los requisitos de la interfaz OLE DB en la tabla especificada. Para obtener más información, vea Requisitos de UPDATE y DELETE para los proveedores OLE DB.
  • Una tabla remota se puede actualizar o eliminar mediante el cursor definido en una consulta distribuida cuando la tabla remota se especifica en la instrucción UPDATE o DELETE (UPDATE o DELETE remote_table WHERE CURRENT OF cursor_name) si el proveedor cumple las condiciones de actualización de la tabla remota. Para obtener más información, vea Usar cursores con consultas distribuidas.
  • Las instrucciones READTEXT, WRITETEXT y UPDATETEXT no se admiten en tablas remotas.
  • No se puede hacer referencia a columnas que tienen tipos de datos de objetos grandes (como text, ntext o image) en operaciones de actualización o inserción si se crea una instancia del proveedor fuera del proceso de SQL Server (la opción del proveedor AllowInProcess es 0). Para obtener más información, vea Configurar proveedores OLE DB para consultas distribuidas.
  • No se permite la ejecución de instrucciones de Lenguaje de definición de datos, como CREATE, ALTER y DROP, en servidores vinculados.
  • Se permite la ejecución de una instrucción EXECUTE que especifique un comando de paso a través en servidores vinculados. Esta instrucción se puede utilizar para ejecutar procedimientos almacenados en proveedores que no sean SQL Server.
  • No se permiten otras operaciones o instrucciones de bases de datos en servidores vinculados.

Otras directrices

A continuación se indican algunas restricciones y directrices adicionales:

  • Los cursores STATIC o INSENSITIVE pueden hacer referencia a tablas remotas. Los cursores KEYSET pueden hacer referencia a tablas remotas si el proveedor OLE DB cumple determinados requisitos. Para obtener más información acerca de estos requisitos, vea Requisitos de cursores controlados por conjunto de claves para proveedores OLE DB. Ningún otro tipo de cursor puede hacer referencia a una tabla remota.
  • Los procedimientos almacenados sólo se admiten en orígenes de datos de SQL Server.
  • Una conexión debe tener las opciones ANSI_NULLS y ANSI_WARNINGS establecidas en ON para poder ejecutar consultas distribuidas. Para obtener más información, vea SET ANSI_DEFAULTS (Transact-SQL).

Vea también

Conceptos

Usar transacciones con consultas distribuidas
Asignación de tipos de datos con consultas distribuidas
Consultas distribuidas

Otros recursos

SELECT (Transact-SQL)
EXECUTE (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

17 de julio de 2006

Contenido nuevo:
  • Se agregó la entrada que indica que no se pueden consultar las tablas que incluyen columnas xml.