Compartir a través de


Ejecutar procedimientos almacenados en SQL Server mediante el adaptador de SQL

Los procedimientos almacenados de Transact-SQL y CLR en SQL Server se muestran como operaciones en el adaptador de Microsoft BizTalk para SQL Server en el nodo Procedimientos mientras se usa el complemento de servicio consumir adaptador o complemento de referencia del servicio adaptador. Los nombres de operación expuestos por el adaptador de SQL son los mismos que el nombre del procedimiento almacenado en SQL Server. Todos los parámetros del procedimiento almacenado se exponen en la operación correspondiente. El parámetro OUT contiene el valor devuelto del procedimiento almacenado. El conjunto de resultados del procedimiento almacenado es una matriz de DataSet. Para obtener más información sobre DataSet, vea https://go.microsoft.com/fwlink/?LinkId=196853. La información de esquema del objeto de destino se obtiene como parte del mensaje de respuesta en tiempo de ejecución.

Sin embargo, si desea obtener la información de esquema del objeto de destino en tiempo de diseño, debe generar esquemas para los procedimientos en el nodo Procedimientos fuertemente tipados en el complemento Consumir servicio adaptador o Complemento de referencia del servicio adaptador. Tenga en cuenta que los mismos procedimientos almacenados se muestran en el nodo Procedimientos y Procedimientos fuertemente tipados . El valor devuelto del procedimiento almacenado está fuertemente tipado y no solo una matriz de DataSet. A medida que la información del esquema está disponible en tiempo de diseño, puede usarla para asignar el esquema del procedimiento almacenado a otro esquema para una operación diferente. Por ejemplo, puede asignar el esquema generado para un procedimiento fuertemente tipado al esquema generado para la operación Insertar en una tabla de base de datos.

Nota

No podrá ver la información del esquema en tiempo de diseño para un procedimiento almacenado fuertemente tipado si:

  • Está usando un cursor, que es un valor devuelto de otro procedimiento almacenado, como parámetro de entrada para el procedimiento almacenado fuertemente tipado.
    • Es un procedimiento almacenado CLR que realiza algunas operaciones en una tabla.

Compatibilidad con procedimientos almacenados con la cláusula FOR XML

El adaptador de SQL también permite ejecutar procedimientos almacenados que tienen una instrucción SELECT con una cláusula FOR XML. Una cláusula FOR XML se usa en una instrucción SELECT para devolver los resultados como XML en lugar de un conjunto de filas. Para obtener más información sobre la cláusula FOR XML, vea https://go.microsoft.com/fwlink/?LinkId=131402.

Nota

El adaptador sql "nativo" disponible con BizTalk Server solo admite los procedimientos almacenados que devuelven XML, es decir, tienen la cláusula FOR XML en la instrucción SELECT. Con la compatibilidad con procedimientos almacenados con la cláusula FOR XML, puede ejecutar estos procedimientos almacenados mediante el adaptador sql basado en WCF sin realizar ningún cambio en la definición del procedimiento almacenado.

Compatibilidad con procedimientos almacenados con tablas temporales

El adaptador de SQL permite generar metadatos para procedimientos almacenados que contienen tablas temporales en sus definiciones. Sin embargo, para estos procedimientos almacenados, debe generar metadatos seleccionando los procedimientos almacenados solo en el nodo Procedimientos , mientras usa el complemento Agregar referencia del servicio adaptador o Consumir complemento de servicio de adaptador. El adaptador no admite la generación de metadatos para estos procedimientos almacenados desde en el nodo Procedimientos fuertemente tipados .

Compatibilidad con conjuntos de resultados que contienen columnas sin nombres o con los mismos nombres

En la tabla siguiente se muestra cómo el adaptador de SQL controla columnas sin nombres y mismos nombres en los conjuntos de resultados para procedimientos almacenados y procedimientos almacenados fuertemente tipados.

El conjunto de resultados contiene... Procedimiento almacenado Strongly-Typed procedimiento almacenado
Columnas sin nombres El adaptador de SQL genera un nombre para la columna de la siguiente manera: se genera un identificador único (GUID) para la columna sin "-" (guion) y, a continuación, la cadena GUID tiene el prefijo "C" porque el GUID generado podría comenzar con un dígito, pero no puede tener un nombre de etiqueta XML. El adaptador de SQL genera el siguiente nombre para la columna: "UnNamedColumn[column_index]", donde column_index comienza desde "0".
Columnas con los mismos nombres Los nombres de las columnas distintas de la primera se anexan con "" (subrayado) seguido de un GUID aleatorio sin "-" (guion). Por ejemplo: "\[GUID]". El adaptador de SQL no admite columnas con los mismos nombres en los conjuntos de resultados y produce una excepción. Importante: Debe asegurarse de que los nombres de columna de un conjunto de resultados tengan nombres únicos.

Nota

En general, se recomienda asignar un nombre a todas las columnas de un conjunto de resultados para procedimientos almacenados y procedimientos almacenados fuertemente tipados y tener nombres únicos.

Para más información acerca de:

Consulte también

Conexión a un sistema SAP mediante el adaptador